You forgot two solutions:
Procedural generation. On-the fly generation of textures and such via pure code instead of storing them raw on the disc. But actual consoles may be too weak to do that. Also, this is a very heavy duty for developers so by default there are some that won't even try that like UbiSoft, Rockstar or EA (except Maxis)
Downloadable games. Instead of storing the entire game on the disc, sell the disc and download the rest of the content via something like Steam, but not all people will be able to do that (broadband, hard-drive, etc.)
The most simple one is multiple-discs.