Just some thoughts about architecture and ideas:
It would make sense to have a single global user DB with some minimal information, which could be easy replicated to MySQL slaves and even if it gets a hundred million rows that's fairly easy to scale. Why users and not blogs? Because this would allow a single user to have multiple blogs.
It would also be nice to have a global blog lookup table which could be the key for flexible domain addressing. So a WPMU server gets a request for "matt.example.com" with a path of "/dog/archives/". It looks up matt.example.com in the database and see's that blog is on DB cluster 4 and /dog
is the Dog Blog which has an ID of 94105 and a table prefix of 'dogblog_'. Then all the heavy crunching can be done against the individual cluster.
It would also be possible to have some sort of domain based key with random distribution, for example you could take an MD5 hash of the incoming username, then use the first character of that hash to go to one of 16 clusters or databases. If you grow beyond that start using the first two characters, which increases your number of machines by a factor. Then when you grow more use the first 3 characters... :)
If everything is on one machine, all the pointers can be for localhost, databases on the machine, and local table prefixes.