Maybe I'm overthinking this, but wouldn't a better solution be to say that server1.localhost doesn't have to be loopback, but that it must be resolved by asking the DNS server at localhost (or alternatively defined in the hosts file).
edit: I don't really have any expertise or experience with this at all, just a thought.
I think people already hosting their own DNS server at localhost don't need to worry about real domain allocations as they can spoof whatever they want for development.
I think reserving .localhost for loopback would be great for my workflow. Maybe it would check hosts for overrides before going straight to loopback?
edit: I don't really have any expertise or experience with this at all, just a thought.