Yes, undistributed improvements don't need to have source code released. This was an intentional decision when designing the GPL; you're allowed to modify the code for your own purposes without needing to tell anyone what you're doing, or to distribute anything related to it. The GPL was never intended to say "if you improve the code, you must release the improvements", but rather "if you do release the improvements, you must release them as free software."
The goal of the GPL is definitely not to ensure that any improvements benefit the whole community. Instead, the GPL is designed to help give users the four freedoms defined by the FSF. With permissive licenses, open-source software can be incorporated into closed-source software with restrictions that the FSF doesn't think are ethical (in some cases, a closed-source program can completely displace the FOSS program it's derived from, and the FSF certainly doesn't want that to happen); thus, the GPL requires anyone distributing GPLed software or derivatives of GPLed software to give users those freedoms. Otherwise, closed-source software could use open-source code but not vice versa, giving closed-source a competitive advantage.
This only applies to users of the software; while users must be able to distribute it, non-users have no right to obtain it (they have to find a user who wants to distribute it to them). Freedom 3 says that users must be able to let the community benefit from their changes, but if you don't want the community to do that, you're free to not distribute them. The only rule is that any users of your changes must also get the four freedoms, so you must GPL your derived work if you release it. Non-users have no rights relating to your software; that's just not what the GPL is for. Internal corporate use is a bit of a special case (because your helpdesk people likely don't have access to the code of your modified GPL ticket management system for administrative reasons); there, since the employees are employees using it just as part of their job, the FSF considers the "user" to be the company, not the employees. Likewise, using a public kiosk doesn't make you the user of the software for free software purposes, so you don't get source code.
That was the original purpose: the community often gets improvements, but that's a side effect of ensuring user freedom. Someone who just wants to do something for their own purposes doesn't have to care. However, with the Internet, the line was blurred between "internal use" and "sharing with the world" -- strictly speaking it's similar to public kiosks, but it feels kinda different. With the Internet, you can use your program as part of something you're offering the whole world, while never actually distributing it under the GPL's meaning. While modifications generally got distributed under the GPL, the Internet means that many kinds of software (e.g. database software) can easily be used to provide a service to the general public without being distribution under the GPL (I think this vs. kiosks is mostly a matter of scale and context), so the FSF added a different license (the AGPL) that says that if you host an AGPL program for people to interact with (but only running it on your server), and you modify it, you have to share the modifications. The AGPL isn't that commonly used, though.