How about allowing the following syntax for the memo:
[<to-account>] [<target-asset-amount>] <target-asset-type>
The optional argument to-account is the BTS account name that you want the target asset to be sent to. If you omit this argument, exchange.btsbots will send the target asset back to the sender after conversion.
The argument target-asset-type is the BitAsset (or BTS) to convert to: BTS, USD, CNY, EUR, GOLD, SILVER, etc.
The optional argument target-asset-amount is a number which is the amount of the target-asset-type to convert the source-asset-type into. It also acts as a price limit. If it is not possible to convert the source amount into target-asset-amount quantity of target-asset-type given the current state of the market, then exchange.btsbots will simply return the source amount back to the sender (minus small transaction fee). If the amount sent is in excess (again after any fees) of the amount necessary to convert to target-asset-amount quantity of target-asset-type, then the remainder will be returned back to the sender.
This can essentially simulate Ripple's path finding algorithm (until it can eventually be built into the blockchain) if you are willing to accept the counterparty risk. It also (as Rune mentioned) allows light wallets to do limited forms of trades with BitAssets before the exchange code is made available for light wallets (again if they are willing to accept the counterparty risk).