Currently IANA has already allocated a number of /16 blocks to the RIRs
Actually they allocated them /12s . There are also some smaller older allocations. So currently less than 6 /12s of global unicast space have been allocated.
Currently IANA has already allocated a number of /16 blocks to the RIRs, and it's up to them to allocate it as they wish. While ARIN has been assigning blocks like birdseed (the way Jon Postel did in the early days of IPv4) downstream in /48s, RIPE and APNIC have been more conservative, and assigning them in /56 blocks.
The standard allocation for an ISP is generally a /32, they then suballocate to customers in smaller chunks (/56 is currently considered best practice as a default allocation for small customers).
The way address exhaustion is likely to occur is not distribution (for obvious reasons) but rather, lending structure to those addresses. While route optimization seems to have been abandoned for now
Mainly because the Internet is NOT a network with a strict and static heirachy, it's a network of private companies involved in constantly shifting relationships.
Like let's say Acme, Inc has 2001:db8:beef:1a00::/56.
If Acme is as big as your next sentances imply they should have no trouble getting at least a /48.
Messy internal routing due to poor initial layout may be a slight issue but I would expect it to be much less of a problem with IPv6 than with IPv4.
The other option would be to subnet even further to /80 or /96, at which point, one is breaking some IPv6 protocols like SLAAC, ND
AIUI the actual neighbour solicitation/advertisement parts of ND are independent of subnet size.
SLAAC is indeed broken by nonstandard subnet sizes but DHCPv6 can be used instead.