This sort of syntax doesn’t work generally. You can’t use commas, spaces, or slashes as the delimiter for fallback here, as they’re all used by actual CSS properties to separate their normal values.
Also, if one type of length isn’t supported, you might need to use a more different approach than just swapping in another length. CSS’s fallback mechanism was built specifically to handle this gracefully, as you can make whatever changes you need when you duplicate the property. (Or if you need to change more than just the one property, the newly-supported @support rule can be used to do fallback on entire groups of rules.)
I notice, though, that your ‘margin’ example isn’t even doing a super-local fallback; it’s still providing a completely new value for the entire property (either uses “1vh 1vw” or “20%”, whichever the UA understands). This is barely saving any keystrokes at all; it just avoids you having to repeat the property name itself. That’s almost certainly not worth adding new syntax for.
But a hyper-local fallback mechanism that can fallback a single value might be worthwhile, like:
margin: fallback(1vw, 2%) fallback(1vh, 1.5%);