This is more of a question of filter events, I guess.
If I have 500k deposit addresses and they are all forwarding to one account and emitting event logs with address(this) and msg.value, would it be easier/more convenient to forward them all to one forwarding contract which then logs the msg.sender and msg.value, then forwards to the account?
All log events in one contract seems easier to handle than listening to events for 500k contracts.