With C in the embedded world it is very common to write entire applications that never only use static memory and the stack. Sometime programmers will allow dynamic memory during init only, other times not even then (I tend to favour the never approach, as I can verify that malloc is never called anywhere).
It's very common that both historical artifacts and natural wonders have been consumed by reservoirs, I suspect it would be almost impossible to avoid this.
https://www.youtube.com/watch?v=HG6c4Kwbv4I