@dalias @glyph @miss_rodent Common Lisp also has a similar approach, the *features* variable's content is to be considered dynamically regardless of whether a given implementation hard compiles some of them.
Cross-implementation portability across architectures tends to work pretty well.
@dalias @glyph @miss_rodent Dynamic probing also means we can eventually (in a perfect world) kill the build and just have portable code always and (almost) purely source-based distributions.
(You do technically need a binary bootstrap seed at some point. The oldschool option for this probably would be physical switches on a (large) machine for the user to set.)
I believe the popular term for dynamic probing and feature discovery is monkey patching.