It would be possible for witnesses to produce a feed of which API nodes are up (like the price-feed) based on automated API calls like @fullnodeupdate.
This could then be used to create a 22nd position in the witness rotation that went to witnesses running API nodes that were up according to consensus of these feeds.
Many things are possible, but I will emphasize again that there is no reason to restrict this to witnesses only.
Decentralization is also a key factor.
One example, simply for arguments sake:
A person may decide to run an app and have a node up and running with their app being primarily hooked up to their node (with an option to utilize a different node if theirs is down temporarily).
Yet that same person may not want to be a witness.
Decentralization calls for options to be available which are not restrictive. "Options are good" and diversification is a must for decentralization to be nurtured.