That nonsense literally held back adoption, because who the hell wants to go through every switch, router, server, client, phone, printer, etc. and give them all IPv6 addresses and then address them only by that?
Eh? I don't understand what the complaint is here.
Yeah, you plug in the printer and your router will automatically give it a global IPv6 address. Your router will also have a firewall in it, probably on by default, so there's no real security concern here.
If you don't like that global address, that's fine, because IPv6 allows multiple addresses per interface, and the fe80:: block is set aside for local use; you can set up all the private, non-routable IPv6 addresses you want there, and in the fd00:: block. Actually, given modern discovery protocols like Bonjour, your printer will probably do this automatically and broadcast its existence to your computer, so you never actually have to enter the address manually.
The only real difference here is you don't have to go through a broken NAT layer that has to keep track of every single connection, and guess when they're idle in order to clear out that memory table. The limitations of this become readily apparent when you launch BitTorrent on a NAT'd machine and everyone else's SSH connections drop because the NAT table filed up.