As Dmitry wrote:
IMHO, there is no bases for such abort (in case of C source and known
GCC version, i.e.<= 4.6). It is sufficient to put warning:
prog_char s[] = "123";
==> warning: 'prog_char' is deprecated
and continue building.
If you find a way to put such a warning without bothering *everyone*
(who includes<avr/pgmspace.h>) with the warning, I'm fine with that.
The problem with adding the "deprecated" attribute to the typedef was
that the warning fires as soon as someone includes the header file,
not just when they are about to use it.
I'm afraid GCC lacks a method to delay the warning until the typedef
is actually used.