The first part isn't really almost fixed to 2001 -- the actual RIR allocations are listed here. The RIRs have /12 blocks assigned to them, with space to expand that to a /7. They also have older /23 blocks allocated out of 2001::/16. The first part might look like it's fixed to one of a few values, but that's because the address space is big enough that the RIRs haven't needed to use those bits yet. They'll use them when they need to.
Likewise, the minimum ISP allocation is /32, but each /32 is actually taken from a /29 reservation that the ISP can grow into. ISPs that are already large get bigger allocations -- mine has a /24, with a /21 to grow into. Allocation isn't done strictly on word boundaries.
It's perfectly fine for sufficiently large companies to get allocations in the /32 range. We have a billion /32s available. That's only one per seven people, sure, but we've just said we're talking about very large companies -- they have a lot more than seven employees each. (Of course the allocation should reflect the size of the company's network; if they're too big for a /48 but too small for a /32 then they should get something inbetween. I've seen /40 and /44 allocations to universities, for instance.)
Even taking the HD-ratio into account doesn't change things that much. If you use a HD-ratio of 0.8 (which is fairly low; IPv4 was around that number in 1998-99 or so) my "5000/person" figure from before becomes something more like 10-20 /48s per person. This is a number a person can realistically manage to hit, but I still don't see everybody on the planet managing that.
Finally, we have five more unused /3s that we can do this all over again in. We could even change the allocation strategy in those /3s, if we discover that our current strategy is bad. I don't think we'll fill 2000::/3, but there's an escape plan available if we do. We could have done it using your split, but we didn't, and from the numbers I don't believe the split we did decide on is going to be problematic.