FFT scaling in GNU Radio
The first thing to remember is that the FFT sink does measure actual PSDs, it performs an FFT, which may be scaled however, and displays its mag-square. So when you say "2 Volts p2p", this is incorrect, as it implies certain things, such as Ohm's law, which don't work that way in DSP.

Now, for your result. First, the window you've chosen (probably Blackman-Harris) will attenuate the main lobe height by a couple of dB. If you had chosen a boxcar window (rectangular), you would have noticed the peak would be at -6 dB. Half the power! And now, things fall into place: In a real-valued FFT (as you are running), the power is distributed between the two peaks that are generated at plus and minus the sinusoid's frequency. And, sure enough, if you run the whole thing in complex mode using a rectangular window, you end up at 0 dB.
If you had chosen the QT Frequency Sink, that defaults to showing the entire Nyquist zone and you would have seen the 2nd sinusoid.

Now, is GNU Radio broken for chosen such normalizations? Not really, since they are always arbitrary. But it is always important to realize that the frequency sinks are not true power spectrum analyzers.