This is known as "Tivoisation" (after a dead set top box company), and is the driving motivation behind GPLv3 and some other licenses adding terms to cover this.
So the end user can have all the source code they want and still be helpless.
That issue with the GPLv2 was fixed with V3.