Like the underscore character _, the tilde ~ is another vestige of the implementation constraints of typewriters. Its history on the Web is because a tilde is a Unix shell shorthand for a user's home directory. When the Web was nascent, before everyone had their own domain, it was much more common to see HTTP URLs like http://example.com/~luser/, where luser was the user name of an account on the associated Web server. So really, the tilde is a second-degree implementation constraint vestige.
Furthermore, anecdotal evidence suggests that nobody knows the word for the damn thing! When playing audience to someone speaking a URI that contains a tilde, one often hears a pause, followed by umm, I don't know, that … squiggly thing
. Other characters that fall into the category of unknown-word or hard-to-say include the ampersand &, the exclamation mark !, the apostrophe ' and the asterisk *. The astute, at this point, will notice that the dollar sign $ is exempt, because people make an exception for money.
So, take care not to make URIs that are hard to say, and kindly avoid perpetuating long-obsolete implementation constraints. Be judicious.