I think one way to handle this is in the main CoinMasterRequest constructor. Just before calling setQuantity(), checking for
Code:
action.equals( this.data.getSellAction() )
should determine if singleton checking is needed (along with checking canInteract(), based on how it's used in AutoSellRequest at least). TransferItemRequest already has a (non-static, for some reason) good keepSingleton() function.
I don't know when I will get around to testing any code I might write, especially since I always just use the relay browser for those shops (I should probably just write a script to turn in all the otherwise-useless items). I also don't know why Winterbay's observed behavior happens with "multiple" selected.