As I have used more ESB features, I have grown to love this more than an API gateway. Developing and exposing your API using Mule ESB is also quite interesting and easy to use.
Some improvements are required in the batch component in case of errors in the batch steps and when processing a large volume of data.
There was an issue in the previous version, 3.6. They have improved and it has been stable since version 3.7.
The initial setup was not complex for folks with a Java background. It can be bit complex for people who only have tools experience.
It is a very good ESB tool for integration. It is easy to learn and their documentation is very well organized.