arduino ide использует gcc для компиляции, и не может ничего "обходить"
Да, но у неё есть свой проприетарный формат файлов отличный от .cpp и .h, поэтому перед компиляцией arduino IDE точно выполняет какие-то операции с кодом перед тем как передать его в gcc