CLN: avoid internals in DataFrame.sort_values
> Did you check that this didn't impact performance? Eg the verify default is different

I did not check perf, no.  Looking at it now I think I confused verify with allow_dups.

So it looks like this change adds an additional `((indexer == -1) | (indexer >= n)).any()` check, which is not huge but not nothing.

The upside is slightly less internals usage.  This is one of the more benign usages of _data, so id be OK with leaving this one > which is not huge but not nothing.

Can you quantify "not nothing" for an example?

To be clear, if this has only a tiny impact, I am completly fine with using less internals in such functions (as that helps code clarity a lot). 
But sometimes there might have been good reasons internals were used directly, so let's at least check. It could also be a reason to expose some fastpaths (like in take here) in the public interface, if that would turn out ot be necessary. Mothballing to clear the queue, will revisit.