Eff has a bigger semantic issue to deal with first.
It is only composable for commutative effects. Once you introduce non-commutative effects like throw/catch or nondeterminism, the semantics of a block of code using more than one effect depends on the order in which interpreters are run.
Monad transformers escape this issue by allowing code to specify the effect nesting order in the type. They're no panacea either, of course. But they currently allow somewhat better code reuse and abstraction properties than the Eff approach does.
If Eff ever gets the ability to control the semantics of non-commutative effects, it will have a much more compelling story.