For an average end-user, if bitcoin-qt is configured with a large pool (1 billion) of Bitcoin addresses, then will it increase user / transaction anonimity?
The pool of addresses is meant for consistency among offline backups. Not for anonymity. See: https://en.bitcoin.it/wiki/Key_pool
Generating and using a new address on-the-fly vs generating thousands in advance doesn't really make any difference in terms of anonymity. Just would create a lot of overhead. What might help more is using a new address for each new transaction. Maybe.
You might have misunderstood how some wallets try to add anonymity to a transaction by joining several input addresses and always adding several new "change address" as extra output addresses. This can be done with a HD wallet, where you change you address each time you are about to receive some Bitcoins. And if you don't spend these right away, you will have several of these inputs which all are in different addresses. Then you are now able to make a transaction which haves multiple input addresses. The wallet can on top of this then add a number of "change addresses", and your final transaction could then (as an example) suddenly have 7 inputs and 9 outputs. This makes the entire transaction look as if its spread out somehow, possibly among several users, when in fact the input addresses are all your own, while 8 of the 9 output addresses also are your own newly generated change addresses - and the last output is to the person you wanted to send money to in the first place.
This same scenario can be set up with much more different inputs and outputs through a function called coinjoin. Here, instead of using your own multiple wallet addresses, you combine your transaction with something like 10 other persons who also is about to make a single transaction, and now you can all have a large complicated transaction with something like 10+ inputs and 10 outputs + multiple change addresses (change addresses are needed to make it harder to see which input and output that possibly could go together).
But making millions of addresses wouldn't really give any usage, and its far more than what is possible to use in something like these type of joined transactions.