I use 1.5.1r2 and I'm pretty sure its GCC is 4.3.2.
I do not get errors, but yeah, the unused PROGMEM data is not removed. The missing bytes seem accounted for with 8x 16-bit pointers, and 6-bytes for each volatile load copy and save.
I'm not sure weather this is a bug ( or what you are pointing out ) as the flash read functions should be able to do arbitrary reading. And I guess not holding onto a pointer saves ram. Maybe there is a way using sections to place progmem data where you want.