And while "looking deeper", it turned out that there is a scary timebomb
in kern/i386/pc/startup.S. Only the initial part of that file is
supposed to be uncompressed, but in fact, the error handlers of the
decompression function itself were spilling into the compressed area.
Adding even minimal debugging code would push the main part of
lzo1x_decompress() beyond the boundary defined by
GRUB_KERNEL_MACHINE_RAW_SIZE, which would crash even before "Welcome to
GRUB".
So I've applied another patch that assures that to uncompressed code
stays below GRUB_KERNEL_MACHINE_RAW_SIZE. It would be nice to avoid any
constant here and make grub-mkimage.c use a label in the image, but it
would need more work and more testing.