> Shouldn't we simply test our code to ensure it functions correctly and not force additional semantics all the time to fix a rare issue?
The problem is you can't. If library A and B define String#to_param differently for internal use you can't use them together, while both of them are perfectly correct on their own.