L'IDE Arduino utilise le C++.
Ne pas confondre POO et C++. Le C++ est un langage, qui permet la programmation orientée objet, mais pas que, et n'est pas le seul. ça me semble important, surtout pour que les débutants qui lisent comprennent bien les notions qui sont en jeu.
Pour le swicth interdit, ça m'étonne aussi. La DO-178C ne l'interdit pas en tous cas.
Le "default:" pose parfois problème quand il s'agit d'évaluer la couverture de code, s'il s'agit d'un cas normalement jamais atteint. On le justifie alors par le principe de programmation défensive.