In my reading of it, this code would work. The code in if constexpr must be well-formed but does not have to be semantically valid. Your code is well-formed but not semantically valid, so this would be the perfect use for if constexpr
You may be correct, and I certainly hope you are. But if that's the case then the static_assert behavior seems all the more puzzling.
In particular if this code works, then you can roll your own "static_assert" that will not trigger from the not taken branches.