You're correct. WebGL does require extra validation compared to native GL, but it's effectively the same API as OpenGL ES 2.0/3.0 and Emscripten handles the translation from C/C++ for you.
There's some overhead but it's negligible (assuming you're not making overly redundant API calls.)