Especially on Windows we seem to have a problem if multiple processes race to start gpg-agent (e.g. T7434: Kleopatra: Initial keylisting hangs for ~60 seconds (gpg-agent: Socket ...S.gpg-agent cannot be bound)).
The explicit start of gpg-agent was added to address the problem that Kleopatra couldn't access smartcards if the user has an empty keyring because in this case neither gpg nor gpgsm start gpg-agent when doing a keylisting, so that no gpg-agent was running (rKLEOPATRAa365ef17e97eca1e3a4bc5f0cc833f3f48b1c2bb).
Nowadays gpg-agent is started if we want to make an Assuan transaction, so that the original reason for starting gpg-agent on startup doesn't exist anymore.