How could we determine which device on mobile network is a faceless cellphone and which is a proper device needing real sweet Internet connection? And won't that make things more complicated than just v6 deployment?
Can argue that NAT, which interrupt layers ment for end device do basically the same as popular user hostinle unchangable mobile OSes, but I don't think latter is good either.
If you're assigning addresses, you can make the addresses in a ULA as short as you want. You're supposed to use a random 40 bit network id but if you can accept that you may need to renumber at some point there is no reason you can't use fd12:b:a:d::beef or whatever.