Oh, I didn't mean to counter all of your arguments with that point. It was more geared towards the visibility during scanning larger bodies of code. Especially that the general need to deal with the different behaviour would give a visual clue. This is what I would regard depending on that visual clue being there.
With regard to undef hunting, I assume our typical day-to-day problems are just different. This is where I would really welcome a separate clue like a more distinguished operator. After all, undefined can also mean false, so a (remote) expression involving "~>" could very well result in valid, but unwanted behavior. At this point one might not even know that one is hunting undefined values.
An additional scenario would be code reviews: I'd have to look much more closely to make sure nobody sneaks in a "~>" where it shouldn't be. This would even be for reviewing my own code. If I refactor a piece of code I have to pay more attention to the arrows.
Just want to note that I don't regard your opinions as wrong, they just differ from mine. I hope I'm doing a half-way decent job at explaining why I hold these views :) Do you have anything against "?->" visually itself, or do you simply prefer "~>" for being more concise (or something else)?
Ordinary morality is for ordinary people. -- Aleister Crowley