I am always on the fly to asia country. There is a article that I read while flying about the security over wifi. Summary it said it not about the device that we use, no matter a smart phone, windows, mac, samsung, it come down on the same gateway which is how secure of these free wifi been setup & the application itself. So it might not be the mac you using capture the password, but might be the gateway"free wifi" that steal it.
The reason why all Singapore bank introduce Token or 1 time pass code generate, is because when we key in the password to our device, it been transmit as "Plain". No encoding. It is only when you successful login thru webbase application doing transaction, then it encoded.
Wifi security apart is a different security issue altogether.
What you describe about 2FA is not why it is required because of how the 1FA Is treated.
With or without 2FA using tokens or any other means, password are not suppose and in properly implemented system will not be transmitted as-is to the server. In fact for proper system all passwords are to be hashed using a one way digest function with some additional requirement and then will be transfer to the server using a secure channel such as HTTPS via SSL.
This allow would be safe but not safe enough because on client systems a lot of times there are things like malwares and key loggers which can capture keystrokes despite security done properly.
As such 2FA helps to provide another layer of security having a device separated from your primary authentication mechanism.
RSA token are appropriate because the token is hardware security mechanism to prevent hacking. It does not require any form of transmission with any party in order to maintain sync with the server so it is considered a disjoint device. All it requires is a unique key and/or synced time with the server and both parties can provide checking in a synchronised manner for authentication. This method is cumbersome in logistic. That is why earlier days we use SMS which is a separate channel but still requires the telco channel which is not as safe compared to RSA token.
These days we also have software solution such as Google Auth which is based on OATH or there are 3rd tokens such as yubikey and more.
The idea is to have a out of band authentication channel from the primary one which has to be as secure as possible too