- navigate to /admin/
- turn editing on
- configure the Administration block
- change "Display on page types" to "The current site administration page"
- The block is now hidden from non admin pages (expected)
- configure the Administration block again (from /admin/)
- Option for "Any page" is removed from "Display on page types" and the block is forever lost from non admin pages.
I had to fix this manually by setting pagetypepattern='*' in block_instances table for the settings id
Seems this line is to blame in code: https://github.com/moodle/moodle/blob/MOODLE_29_STABLE/lib/blocklib.php#L1844 because currentcontext and parentcontext are the same.