I see that you have no experience with C++ in the past decade. There has been no fragmentation in C++ resource management since C++11.
The Standard C++ Library supports user-managed allocators for all the containers, heavily used in embedded, low-latency, and real-time applications to get deterministic performance.
Lack of standard support for user-provided allocators indicates immaturity. E.g., C++ lacked them until 2011.