To be able to reconnect to a WiFi router, with out prompting the user every time for the shared secret, the client operating system needs to remember the shared secret.
Some operating systems make this "hard" for a user to see, but this will not prevent a determined user from recovering the shared secret.
Yes this is a weakness, but then so is any scheme based on a secret shared with all your users. If you want better security on WiFi look into using client-side certificates using 802.1x. Again the credentials are still stored on the client device so anyone with access to the unlocked device will be able to get access to that certificate, but at least the cert is only tied to one user and is easier to revoke then a shared secret.
Edit - Captive Portals
Some places do do this, usually hotels, search for "Captive Portals". This approach has many weaknesses, most prominently it is not implemented in the WiFi protocols.
This is often overcome by the router redirecting all http traffic from a given MAC to the captive portal until the client has logged in. If you start every session with a plain text HTTP request this is almost acceptable. If however you start your WiFi Session with a POP3,IMAP,SSH,HTTPS etc. session this work significantly less well.
Another weakness of most of these systems is that they are based on MAC address, which is snoop-able and spoof-able.