How is the wallet balance split across keys? I suppose it's advisable to use a new key frequently for bitcoin receive address for anonymity. If each received amount goes to a new key, will my wallet size become unmanageable if I receive a number of small amounts per month ?

If yes, how can I consolidate all the coins split across 100s of keys in case my wallet is compromised and move it to a new wallet?
It is foreseeable that the number of private keys that you must maintain may grow  to an unmaintainable level.

The most common sense way to consolidate is to send your balance to a single address. This, however, effectively announces that all of those previously created addresses are linked to the same wallet.

If you really must maintain anonymity, then you could send the balance to a tumbler, and have that tumbler output different amounts to several different addresses you control. This, however, does have a cost, because tumblers are not free. Another alternative to a tumbler service is to send your balance to a web wallet that pools all bitcoin together (ledgering internally) and manually send different amounts to separate, new address. However, any time a balance exceeds one of those addresses' balances, it's likely that more than one will be used for the transaction, thereby linking them.