Nun, wenn der Webserver entscheidet dass die Tilde eine besondere Bedeutung hat und nicht zum Parameter-Wert gehört landet die doch gar nicht erst in $_GET['id'].
Also doch kein Problem?
Hmm... Ich vermute es geht bei solchen Seiten nicht um Parameter-Kodierung, sondern um den url-path. Aber die URL-Kodierungs-Funktionen sind ja ohnehin für den Query-Teil bestimmt. Also vermutlich doch kein Problem.
http://example.com/foo/~bar