It is an interesting point, but the performance improvements he desires can be accomplished with encapsulation by employing polymorphic types (storing a header of type H that the Person type can't operate on because it only knows it is an H but the container collection can) but of course this binds the instances (e.g. of Person) to the type of H they were constructed with so they can't be added to other types of containers that require another type for H. But his C solution also makes this conflation.
The biggest issue of using C++ for system software is the undefined behavior for error handling, especially during interrupt time and all the system calls it makes on its own, which directly affects memory caching at the very least and who knows what else.
Which may not matter for the Equihash, but I got your point that you don't bother with C++ generally because of that general issue. And there are other tradeoffs.
Btw, I also am loathe to upgrade my C++ skills to master the STL. I last coded in C++ in approximately 2002.
When I look at C code, I can feel what the algorithms are doing, so it is a night and day difference. Being fluent vs having to look words up in a dictionary. I get headaches looking at C++ code, probably as I cant fathom the nearly infinite system states the code represents.
With C++ the possible system states are orders of magnitude greater and there is no control by the programmer. So if there is some strange bug, it can be buried deep inside of some automatic garbage collection process, causing a cache miss that triggers a swap to HDD, which then makes the interrupt handler fall out of realtime and things get out of sync.
With C, at least I know I am the cause for any bug.