In the PEP 8, the
_single_leading_underscore mentioned as a weak “internal use” indicator. Despite the fact it is only a naming convention there is some support for that in the language/stdlib, e.g. in star imports.
I think this could be extended to function/method signatures, e.g. with a “private” option for the inspect.signature: for private=False - underscore-prefixed keyword arguments (with defaults) will be excluded from the returned signature.
Here is an example where “internal use” option from the stdlib was completely misused: Improve support for unnormalized Fractions