Sharding is use with replication to provide failover. This will be more automated in the upcoming sharding beta.
Key storage in the document objects make it more 'schemaless' which is actually incredibly useful; the document format (BSON) is efficient. In practice that works just fine. Try it out sometime on a test project?