This seems like one of those anti-patterns that has been passed down by blog posts and from engineer-to-engineer. I've seen this in almost every single developer team I've been apart of.
Either way, like you said, people should be using .test so you don't have to worry about future collisions.
It literally happened to me yesterday, setting up a VM and aliasing it to a .dev domain for local testing. Took me an hour to figure out what was wrong =/
.test is the TLD you want, specified by RFC2606.