Single config file for the entire boot loader, which makes exactly this case of booting multiple installations unnecessarily hard because one OS has to generate the config for all the others (which can generate unbootable entries, like for NixOS which needs a special init= argument)
Of course, the Rube Goldberg config generator itself, which is a big source of problems with the system not booting, but is pretty much needed because of the complexity of the config file. It doesn’t need to be this way, rEFInd for example might not need a config file at all, and systemd-boot can do with a very simple ~5 line file per boot entry
The latest release is 2.06 (from 2021), there’s distros that have almost a hundred patches on top to fix CVEs, which isn’t very maintainable for distros and doesn’t make the upstream look well maintained either (other distros just use an unstable version)
300k LoC as opposed to rEFInd’s 50k or systemd-boot’s 13k. Of course, code size alone doesn’t mean anything, and I haven’t checked but I assume most of that is code that was needed for BIOS boot which nowadays just reimplements UEFI features, this includes at the very least: graphics code, network support, file system support
That’s just some I can think of off the top of my head, I’m sure there’s more. Apparently the code itself is pretty horrendous too, but I haven’t looked too closely at it. Given the way some command line tools act though (like grub-mkfont, which iirc always exits with 0 even if there’s an error, which led me to do questionable workarounds in a shell script to let me detect errors while still printing its output), it seems to check out.
My latest “experience” with it is that a couple weeks ago I had to deal with a machine which would just get stuck at the Grub prompt. Turns out Grub just wouldn’t load its config file anymore. You could manually load the config with a command I already forgot, it just wouldn’t do it by itself. Running grub-install made it work again, I still have no idea what caused it though.
IMO, the whole thing is a hot mess and the only thing it’s got going for it is the extensive theme support, like that Minecraft one that was pretty popular recently (but do you really need to theme something that you see less than 5 seconds per day?).