This is correct but keyword arguments until recently had some limitations that made the compiler infer worse what is related, see: Add keyword argument constant propogation to News by ChrisRackauckas · Pull Request #36292 · JuliaLang/julia · GitHub
I am not sure of that. If I remember correctly, there was a kw_sorter generic function that had to be called receiving the NamedTuple arguments to fill in the defaults and then pass to the under-the-hood method that has no keyword arguments (only positional ones). I think that for larger lists of keyword parameters in which some of them are explicit and other are missing, the function may take a performance hit (but if the function makes any considerable effort this ends up being a little overhead).