Maybe make sense to post to #coroutines to hear more opinions.
I see nothing wrong to use both libraries, kotlinx.coroutines even have adapter library for RxJava.
Single, Maybe and Completable can be easily replaced by suspend functions and you will get better anr more obvious code
If we talking about streams it's also possible, but Channels are pretty different from default Rx streams, they are hot and optimized for cross-thread usage. Also Rx has much wider set of stream operators, but writing own operators using coroutines is much easier
There is proposal also about cold streams abstraction for kotlinx.coroutines, which would be closer to Rx behavior and optimize some use cases when cold straems are more efficient.
Also it doesn't look like realistic strategy to rewrite some project from Rx coroutines without interop