It's only messy if you don't understand it. Just because a concept is difficult to grasp initially, doesn't mean it's messy. Using this properly can prove to be a very powerful and flexible tool in your JS skill set.
Ultimately I think it forces people to think about JS differently than what they might be typically used too.