localhost is reserved for a very different purpose, though .local is a reserved pseudo-TLD for a purpose encompassing much of what was suggest by GP for .dev.
I feel like mDNS isn't used enough in general so there are weird cross-implementation bugs in it. (Partly just because of weird overlaps between early Bonjour entities, modern mDNS stacks, and weird-in-betweeners like "UPnP".) A lot more peer-to-peer applications could bootstrap better from mDNS than currently do simply because bootstrapping from known HTTP(S) endpoints is easier and less buggy.
I've wondered at times if, say, enterprise adoption of .local and proper mDNS might be a kick in the pants to sort out mDNS and make it better for everyone.
That's right,.local was a bad suggestions ; while the notional purpose is specifically residential, the local-use behavior that people are looking for is associated more with the reserved domain .home.arpa if .test isn't desired (.test is technically for testing DNS-related code.)
Web devs aren't the only ones that need test/dummy hostnames. That being said, as mentioned in another comment, there are other TLDs already reserved for such use.