> I really do wish they'd just stuck with dots
Then it would get confused with domain names (e.g. babe.cafe).
I wonder how many readers realized your joke here. For the ones who didn't, the 4-byte "magic number" that identifies Java .class files, in hex, spell "CAFEBABE".
reserve a TLD, like ".v6", and you are done.
URL parsers don't break, the amount of code to change is not that big, and many of the user-space applications can keep working with no changes at all, as long as they use high-level network libraries.
If you really hate this for some reason, use some other characters. How about underscores (_) for example? Those are not valid in DNS, so there is no chance of confusion.
Choosing colon when URLs were already using it is either very stupid or very mean.
Ah, right, because we threw in hex. That's fair, but then I return to: If we're doing that, we should have changed the port separator.