Tony Hoare in the Turing Award lecture in 1980 said...
"there are two ways of constructing a software design: One way is to make it so simple that there are *obviously* no deficiencies and the other way is to make it so complicated that there are no *obvious* deficiencies"
The FADEC systems I saw in the 1980s and early 90s were in category 1: as simple as possible (e.g. no loops, no compilers, etc).
Times have apparently changed. Engineering best practice has apparently been replaced by cost effective, productive, etc. For now.
https://www.cs.fsu.edu/~engelen/courses/COP4610/hoare.pdf
Longer version (same concept, different presenter):
http://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_slides.pdf (55 slides)