It drives me nuts, actually.

It is because a colon triggers app tags and thus parses it and possibly strips it.

This is not a technical problem, urls are endcoded when used as the url field, but shoving them into tags is another problem. This is something we do, to make us have to escape it.