Curious that my original recipe (fixing the C-x C-x to C-x C-c, as I suppose I intended) doesn't work now because
emacs -Q -f desktop-read
does not read the desktop file from the current directory ('.' is no longer in desktop-path).
But anyway, back to the issue:
> Hm, I think I was wrong here -- I'm not getting exactly the same errors
> as in earlier versions of Emacs, but the data that's saved still isn't
> usable.
Correct.
But, I suppose it is perhaps not worth fixing now, because after that we implemented framesets, and you can do
C-x r f a
and the frameset in register a is saved and correctly reloaded afterwards. It's a bit of an overkill, of course.
If we want to fix it, perhaps we could trick our way, by using framesets to save a one-frame frameset with some special info to mark that it is really intended to be just a window-configuration, and then, when reloading the desktop, restoring somehow the window configuration into the register, from the frameset data. No idea if it is worth the effort, but I think it would be doable.