carlsonmark
With an FPGA and external DDS chips, this is difficult to do just because of mismatches in PCB trace lengths and/or small temperature fluctuations. With a microcontroller, it is nearly impossible to do even when using DMA because of memory bus contention.
Another source of cracking could be related to moisture in the SMD components. We do primarily small volume PCB runs where I work. In house, with parts stored here, pick-and-placed here, etc. We have had components crack as well, and I recall one of the suspicions being the source of the components. They were a supposedly reliable supplier, but components from them failed more often than those from another supplier so we stopped getting parts from them.
I am not sure if resistors are as prone to humidity effects, but if plastic parts are not humidity controlled before going into a reflow oven, they are prone to cracking. Even as a software guy, I have seen several brand new boards with cracked components on them over the last 15 years. Often the cracked components are difficult to find, since they are so small and do not fail completely (they are just off by a wide margin.)
I looked into it a bit further, and cppyy does have provisions for this: https://cppyy.readthedocs.io/en/latest/bindings_generation.h...
I may have misread that page, but it looks like you can create a .rootmap and .pcm file and distribute that instead of the C++ headers.
If you want to / can share your header files, cppyy is a very convenient way of being able to call your C++ code from Python. I'm not sure if there is a way to use it without headers.
Guessing about pipelining, memory access times, and the effect of generated code size is much less valuable than real measurements.