Yes, there could be a vulnerability in the public-key authentication mechanism of SSH. But there could also be a vulnerability in the password or challenge-response authentication mechanism. So basically on that factor alone, both authentication methods are considered equal.
Benefits of public-key authentication
The private key is never sent over the wire. The server has the public key, and it encrypts some random data with that public key. This data can only be decrypted with the private key. The encrypted data is then sent to the client which decrypts it and sends it back to the server.
It is also impossible to brute force decrypt that data. The client only gets one try to decrypt it. If it gets it wrong, it has to start over with newly encrypted data. Then there's also a time limit, where if the client only has a few seconds to respond.
Downsides of public-key authentication
SSH private keys can be protected with a password, and for security, it is recommended to do so. But it is not required.
So if client system doesn't have the private key password protected, and someone gets physical access to the system, or a copy of that key, then they get access to the remote system.
Downsides of agent key forwarding
It is possible, and common, for the client system to use a 'key agent' for storing the SSH private key. When the ssh client needs to do something with that private key, it sends the request to the key agent.
It is also possible, and common, to forward access to this key agent over the SSH connection, so that you can use the local SSH key on the remote system (if you wanted to ssh to another box for example).
The downside to this is that if the remote system is compromised, or someone else has root access, they can use your ssh key while you are connected to that system.
With key forwarding, the SSH daemon puts a named socket on the remote system which is used to communicate with the SSH key agent. This socket is protected by basic filesystem permissions so that only your user can access it. However since root can do whatever it wants, and filesystem permissions have no meaning to it, the root user can access that socket and use your private key.
Note that this doesn't mean they get your private key, only that they can use it. The SSH key agent never sends the key itself, it only responds to the 'decrypt this data' request needed for public key authentication.