I wish the CK would actually start at the beginning when adding new forms, instead of at FF0000 or something equally ridiculous.
The stupid thing is, there's even a section in the plugin header that controls what the next new form ID should be. If you have a plugin that goes no higher than, say, 0xF00, and you change that field to 0xF01, then you load it back up in the CK and create a new form, it'll go into 0x1000+ anyway. Annoying.
I think that is a bad thing. If the CK would allow you to edit ESLs, you could just keep editing the same file, without having to click "convert to light master" each time. IMO, they should have made ESL to be the new default, with an option to create an ESP, if you actually manage to hit the 4kiForm limit.
I have to agree there. I think the reason it is the way it is is to deal with deleted forms. With an ESP or ESM, you can delete a form and you'll never even risk using that form ID again, just to make sure that you don't accidentally transmute an actor into a keyword or something. With ESL (or compacted ESPs), you have to be careful about that. It sure would be nice if my workflow didn't have to be "save ESP -> load in xEdit -> run compaction script -> resave -> reload in CK -> convert to ESL", though.
I have to view the ESP as sort of a legacy format for most mods now, though, from an end-user standpoint anyway. There are still valid reasons to use it, e.g. really big mods, or for patches between mods for example, but for the most part there's no functional reason that like 80 or 90% of new mods shouldn't be using the new format. It's just that information about dealing with the format is scarce, and even the CK wiki gives inaccurate and/or misleading information about it.
As for the 4k form ID thing, I'm actually curious where the 2k idea came from. It's true that the CK's "compact form IDs" button only renumbers between 0x800 and 0xFFF, however it doesn't seem like there's any actual reason for that. At least, I tried loading the Year One Mega Pack into xEdit (which is ~2800 form IDs) and had it renumber every form ID starting at 0xFF, ticked the ESL flag and changed the extension, and loaded it into a game, and there were no issues doing that at all.
Out of curiosity, I just decided to see what would happen if I loaded an .esl with form IDs over 0xFFF, and it appears that the game just ignores the first 10 bytes of the form ID; the plugin was 0x00C or something in the ESL load order (0xFE00Cxxx), and the one form ID I changed to 0x1002 just loaded into 0xFE00C002. So it seems that not only is 0x000-0xFFF good to go, but 0x1000+ isn't even necessarily invalid since the form ID just wraps around. Of course, there's absolutely no advantage to doing that, but the game doesn't crash and burn as hard as I expected it would.