Agreed, the point of divergence is already C89, not C99.

The C++ compatibility with C, is "As Close as Possible to C, but no Closer", meaning supporting C should not break the stronger type checking or the improved type system C++ has over C.

As such, besides C89 original differences, compatibility has only been added for C features that don't clash with C++ approach to the same problem, and while the C++ standard library keeps up with ISO C, it also does so taking into consideration C++ features for the implementation of said library functions.

"Sibling Rivalry: C vs C++"

https://www.stroustrup.com/sibling_rivalry.pdf

"C and C++: Siblings"

https://www.stroustrup.com/siblings_short.pdf

"C and C++, a case for compatibility"

https://www.stroustrup.com/compat_short.pdf

Two examples of the library updates,

"C++17 should refer to C11 instead of C99"

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p00...

"C++26 should refer to C23 not C17"

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p33...