CMake silently disregards the C preprocessor flags environment variable (2012)
cmake.org
cmake.org
This collision is why CXXFLAGS was chosen for C++ compile-time flags.
('+' being an inconvenient literal to use in a shell environment.)
The .cpp extension comes from platforms where CPPFLAGS didn't exist, i.e. not UNIX. I think .cc has always been preferred on UNIX platforms, though .C used to be common as well.
The XX glyphs are the closest thing to the + glyph that can be used in a shell or make variable name.