Yep, happy to discuss. The case for removals is that some symbols were actually removed in one Emacs version and then re-added later.
My overall technique is to load everything that I can, dump all the symbols I found, and then diff those dumps between Emacs versions. Using my nix-emacs-ci builds makes this straightforward to automate. Not all features shipped with an Emacs build can be loaded in that build, though, because some rely on native or optional features, e.g. Windows or Treesitter. As such, it’s hard to get an authoritative list of all the known symbols. In practice, the lists I’ve generated have been good enough for package-lint, and I often use the `package-lint-describe-symbol-history` command when I’m curious about a given symbol. -Steve