We generally could allow users to use the downcast API and IDETs to use extra winit functionality without adding cfg guards, they'll just have to cast before calling something, but if the cast will be always be None it'll be optimized out, so effectively the same as using cfg just your code is always compiling and it's easier to write cross platform code without testing
all the features.