По-моему, ошибка компиляции это ошибка компиляции, sfinae требует, чтобы все возможные варианты подстановок были компилируемыми.
Если ты попытаешься вызвать несуществующий метод в SFINAE контексте, то получишь SFINAE. А в обычном получишь ошибку компиляции. Не вижу пока принципиальной разницы со static_assert