If you're running Bitcoin Core as your wallet, then the graphical interface is handling your wallet's total balance already, which includes the balance of every address within your wallet.
If you prefer the command line method, use bitcoin-cli getbalance
to get the total sum of all transactions in your wallet. That command basically balances your wallet transaction history like a checkbook, so including deposits and debits, and delivers you the final balance.
The balance shown in the Bitcoin Core GUI is the same as the balance displayed with bitcoin-cli getbalance
.
To answer your second question, as far as I can tell there is no downside to creating unique addresses for every transaction, and in fact it is highly recommended in order to aid in anonymity. The fact that you own all of the Bitcoin associated with a particular wallet is harder to determine when more than 1 address is used to receive funds.
However, spending the entire balance of multiple addresses in a single transaction could negate any protection you were hoping to have by using multiple addresses in the first place, since an attacker could then determine, using that single transaction ID, that the total balance of the multiple addresses was associated with the same wallet.
Hope this helps
EDIT
One important note when creating many unique addresses is, if using the Bitcoin Core wallet, backups would need to be created more frequently because new private/public keypairs are generated when creating a new address, and previous backups will not contain the new keypairs. Therefore, if you create a backup of your wallet, then create a new address and receive 1BTC at that address, then your wallet backup will not contain the address that received 1BTC.