In general all high level MultiChain APIs preserve a change UTXO for the sending address, otherwise all sorts of things can start breaking for permissions, streams, etc.... In your case try using raw transactions or the combineunspent API which can clean these up for you. There is also the auto combining functionality configured in the runtime parameters.