Why is that ideal? Presumably the default is part of the API, so it seems reasonable to define it in public API methods.
You can mimic your MATLAB example like this:
xtimesk(x::Float64, k::Float64 = DEFAULT_K) = x * k
xtimesk(a::A, args...) = xtimesk(a.x, args...)
but I’m not sure it’s better than simply repeating = DEFAULT_K in each method signature (as long as DEFAULT_K itself is only defined once).