I actually came across this thread with "free the slaves" in mind. But having read and read, I realised that - for me at least - the problem is largely one of assumptions.
If I assume: Selling the slaves in a feudal or similar place, they are being sold into slavery. If I 'sell' them in a democracy, I am freeing them for a reward (or if some are scooped pirate pods, handing them over for legal processing, again for a reward).
Morally, I choose to 'sell' them where they will be dealt with fairly and feel good about it. The game mechanics doesn't change. Any 'slaves' I scoop can then be 'sold' with a clear conscience.
Fits with the game dynamic of 'slaves' in is okay, slaves out is not - bringing 'slaves' in is handing them over to the station to handle (whether that be freeing them, incarcerating them or on-selling them). The actuality moves beyond the game mechanics as all three look the same from the player's perspective (slaves are gone, money is gained). At the other end, the station won't appreciate you taking incarcerated people off whatever their reason for being locked up (real slaves, indentured labour or legal prisoners) hence it is universally illegal.
In the end, for me all it needs is codifying what types of systems free 'bought' slaves and what types keep them enslaved. No actual game changes.
That doesn't discount the use of an OXP. For example, whenever slaves are 'sold' in places known to free them, there may be extra paying-passenger missions generated, however it does remove the need to have extra screens asking what to do with slaves in the hold - what is done is implicit in the location in which the player unloads them.
Maybe when traveling in the more enlightened worlds, they should be renamed on the manifest from 'slaves' to 'sentient cargo' (still need to differentiate them from berthed passengers)