My point was not entirely that the documentation was wrong. It is an extremely useful capability to be able to define a common base set of CPPFLAGS and then use per-target CPPFLAGS to extend these (equivalent to +=). Otherwise the Makefile.am has to be very messy and large, since as soon as you add one per-target CPPFLAGS, you then need to start passing all CPPFLAGS via individual per-target CPPFLAGS
Are you sure about that last part Bob? I have Makefiles that do:
AM_CPPFLAGS = -I../foo -DBAR
src_foo_CPPFLAGS = -DBAZ $(AM_CPPFLAGS)
and this works just fine. I can then ensure that my common CPPFLAGS are incorporated for a target that also needs special flags.