Mine was indeed about usage; I'm pretty sure I never claimed there's any ODR violation in that code. Whereas in your comment you specifically claimed "the different value for `is_constructible_v<S<X>>` can cause ODR violation in this variable template itself https://eel.is/c++draft/meta#rqmts-5", in response to which I pointed out that the quote you're referencing declares this UB without involving ODR at all.
In any case, I think we're on the same page at this point; we both understand the issues and risks/benefits with both approaches. Hope the examples I provided were helpful.