Actually, MP3 VBR is not the perfect solution and has problems of its own. Why? Because VBR mode relies solely on the encoder's psychoacoustic model. When you encode in CBR mode, the encoder asks "how can I best preserve fidelity using this fixed allocation of bits?" It's one-dimensional. With VBR, not only do you have to allocate the bits properly, you have to determine what is the appropriate framesize for a given timeslice. It's more complex and much slower to encode. Psychoacoustic models are not perfect and sometimes VBR mode picks a framesize that is too small to maintain a given quality level. This is why some people add a "-b 112" or "-b 128" to their LAME command line: to prevent the VBR encoder from choosing too low a bitrate. I'm not saying VBR is bad; rather, I'm saying it's just not as perfect as it might seem to be.
The best mode is ABR, which is a hybrid of CBR and VBR. You specify the average bitrate you want the file to have, so filesize is more or less predictable like CBR (it's rarely dead-on exact, but very close usually). However, ABR mode uses dynamic framesizes like VBR. I've seen analyses that say that 192kbps ABR is transparent to at least 95% of the population...at least as good as 256kbps CBR at 3/4 the size.