Adding dropdown select meta box to custom post type – seems restAPI is interfering

But I don’t understand: why does the mere act of checking off that a
post type is visible to restAPI cause wordpress’s backend editor to go
into a completely different mode of operation?

WordPress 5.0 introduced the Block Editor. This is an entirely new post editing screen and method of editing posts. It works by using the REST API. So if you have a post type that is not available in the REST API, it will fall back to the old “Classic” editor, and continue to function as it used to.

If the post type is enabled in the REST API, then unless otherwise specified (such as by using the use_block_editor_for_post_type filter), the Block Editor will be used instead.

Custom meta boxes created using add_meta_box should continue to work in the block editor, but they have to be handled differently for compatibility with the Block Editor. How this works is documented here.

But there should be no issue with $_POST being seen inside the save_post or save_post_topic hook. If you’re attempting to debug, it’s likely that you’re looking at the wrong request. Most changes in the editor will be sent to the REST API endpoint, and handled by that, but meta boxes will be posted as a separate request to /wp-admin/post.php, where the normal actions will fire. The only difference being that this now happens in the background.