My biggest concern is scalability, obviously, but there is other challenges as well.
For XCATs you'll need to run a full node for each cryptocurrency you are trading, e.g. you'll need to run both Zcash and Bitcoin core if you want to exchange those two cryptocurrencies. You'll also need to run some middleware that connects everything, see
https://github.com/zcash-hackworks/zbxcatMerchants that want to accept multiple cryptocurrencies and convert them into Bitcoin for e.g. paying taxes in Bitcoin will probably have fairly significant disk storage requirements.