I have some code now in heavily development, lsched, A C implement coroutine scheduler that inspired by Lumen. it's here now:
https://github.com/starwing/luasched
you see, this is a C Library for both C module and Lua script -- means, it must offer APIs for C that balance the stack. it indeed offers much of them, detail documents is in header file.
some implement of APIs and exported routines must use some helper about Lua stack: you could see copy_stack, and sooooo many lua_pop (which is just a macro of lua_settop).
another library is lbind, A Lua binding generator runtime C code, it offers, again, some APIs for both C module and Lua script. meet same issue, either.
I means, maybe in normal C module the current C API is good, but it makes C API author (like me, write C code used by other C module, that offer services to other C module) unhappy :(
that's reason I raise up the suggestions.