You maybe right. But in modular context (C++20 Modules), I believe it's ok.
BTW, can you give an example to illustrate that defect ? I just can't think of a reasonable situation.
------------------------------------------------------------------------------------------------------------------------------------------------
Oh, I know, it's function (template) overload problem. But in that case, I think it's rather an ill-formed code than a defect. Just like normal usages of final, I really think that the core language lacks a way to ban overloads or specializations just like the way to ban derived classes or overrides.