A few points to be clarified came up via the TeX StackExchange chat
Taking the example of the l3prop module \prop_put:nn is a function of
the prop module that can be used by other modules. In other words it is
a public interface. On the other hand \prop_put_aux:NNnn, called by
\prop_put:nn and others, is an internal function, and so would be
renamed as \__prop_put_aux:NNnn or possibly \__prop_put:NNnn (as the
_aux is not directly needed here).
As such, 'well behaved' LaTeX3 module will still have access to exactly
the same functions from the kernel as they do now, and via the same
names. It is only functions which are 'private' to a single module which
would be changed.