1) Med hensyn til dokumentgrænsen på 4 MB, er dette, hvad "MongoDB:The Definitive Guide" siger:
I sidste ende afhænger det af, hvor store du forventer, at regningerne for en bruger vil vokse. Jeg håber, at uddraget ovenfor giver dig en idé om de begrænsninger, som dokumentstørrelsen pålægger.
2) De-normaliseret skema (regninger følger med brugerdokumentet) er vejen at gå, hvis du ved, at du aldrig kommer til at køre globale forespørgsler på regninger (eksempel på en sådan forespørgsel er, hvis du vil hente de ti seneste regninger ind i systemet). Du bliver nødt til at bruge map-reduce for at hente resultater for sådanne forespørgsler, hvis du bruger et denormaliseret skema.
Normaliseret skema (bruger og regninger i separate dokumenter) er et bedre valg, hvis du ønsker fleksibilitet i, hvordan regningerne forespørges. Men da MongoDB ikke understøtter joinforbindelser, bliver du nødt til at køre flere forespørgsler, hver gang du vil hente de regninger, der svarer til en bruger.
I betragtning af den use-case, du nævnte, ville jeg gå med de-normaliseret skema.
3) Alle opdateringer i MongoDB er atomiske og serialiserede. Det burde besvare Steves bekymring.
Du kan finde disse slides nyttige. http://www.slideshare.net/kbanker/mongodb-meetup
Du kan også se på MongoDBs produktionsudrulningsside. Du kan finde SF.net slides nyttige.