Yes, you can definitely do this with protocols like CoinSpark, by building the exchange transaction in a similar way to that used in MultiChain. The difference is that on the bitcoin blockchain, information describing the asset transfers sits in an extra OP_RETURN, rather than in OP_DROP metadata inside each transaction output. As a result you can't use partial transactions/signatures (SIGHASH_SINGLE) to create a safe DvP offer that can be passed around. Instead all participants must know the full set of inputs and outputs ahead of time, and all sign the transaction (including OP_RETURN) with SIGHASH_ALL.