It is a true overwrite. In this case it’s not “bad” since the two are actually doing the same thing. However, to reduce code duplication you cn just not have that optional positional argument and let the kw version provide the f().
You mean keeping only the keyword version? Yeah but then if I have let’s say only g(; x=3) = x + 3 I can’t use it without keywords (g(5)) I’d like to have both worlds, but I guess I have to chose.