ha, got it, apparently!
It seems that changing in lua_debug.c from:
#define checkreg(pt,reg) check((reg) < (pt)->maxstacksize)
to:
#define checkreg(pt,reg) check((reg) < ((int)((pt)->maxstacksize)))
made a difference, and the assertion in my port appears now to be passing beautifully.
Now, I'm really not much of a C standard lawyer, so I'm not sure here if comparing "int" to "unsigned char" is undefined (and thus maybe bug in Lua?) or defined (and thus maybe bug in Go's C compiler)?
(As to my previous mail, I realized later that I should have posted 5*4 bytes, not just 5 bytes, but that seems not very important any more.)
/Mateusz.