Using availability outside of something that's structurally a condition is Hard, because now your availability errors have to do some kind of conservative dataflow analysis to be emitted, and people would complain about the places where a human can prove that something's safe but the compiler cannot. This gets even worse with transforms like function builders, which may also need to know what's in a limited availability context.
Extending availability checks to ternary operators, on the other hand, would be fine (edit: from a "technically possible" point of view), since the compiler can see their structure up front. (Although since function builders work on a statement level, you probably wouldn't be able to get the special handling of limited-availability sub-objects that you get with
if #available.) @mekentosj, I'd love to see some more real-world use cases where you would have used a ternary operator instead of
if but couldn't.