Much of ESP32/ESP8266 Arduino cores are wrapper functions. If can get a bit hairy to go looking under the covers because you just find templates, macros, and raw IDF.
Efficiency and understanding comes from IDF programming the Espressif devices:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/index.html
One can mix the two functions, however:
FTI: The Official STM32duino core does the same wrapper concept around their professional function library ... which does introduce some inefficiency.