RAII was superceded by the Java Garbage Collector.
Only for memory. There's a lot of other resources out there where the GC complicates things a lot. Files and mutexes to name some common ones. At least .Net has "using" which is a poor mans RAII, but it's still easy to mess up and have a lingering resource handle.
Note: operator overloading is very problematic, eg. does * mean 'inner product', "outer product", "element-wise multiplication", or some other weird operation that some developer decided to put in.
I admit I've only programmed in C++ for 6 years, so I'm a bit new. But I've not once come across any code which sounds like the mess you describe. On the other hand, the code which does use it is significantly more clear because of it.
offsetTangentPos = LocalToTangentMatrix * GlobalToLocalMatrix * (globalPos + offset);
is a lot clearer and closer to the math to me than
offsetTangentPos = Matrix.multiply(LocalToTangentMatrix, GlobalToLocalMatrix).transform(globalPos.add(offset));