I understand your confusion. From my point of view, the text starting with 'Lua implements...' is merely a description of how automatic memory management is done in the reference implementation of Lua and might not be considered a part of language specification (please correct me if I'm wrong). At least, I was experimenting with more HotSpot-like garbage collection approaches and they seemed to work just fine.
On the other hand,
lua_gc and
collectgarbage are standard library interfaces and they expose implementation details and I guess that if you want to build fully compliant platform you'll be forced to use mark-and-sweep...
I think that the piece of text that concerns you could be refactored if GC interfaces were removed from standard library, which actually makes some sense to me.
Best regards,
Igor A. Ehrlich