All these things are true about JMeter.
There are alot more sexier applications and frameworks out there that help with API testing. However they tend to specialize in one type of testing, or are limited to how much you can do with them.
When I went looking for an API automation tool I knew I had to do two things: Functional Testing and Load/Performance testing. I wanted one tool that could leverage the work I did for one, when I move working on the other. I am extremely allergic to having two sets of code in order to test the same thing two different ways. So I needed one tool and not a set of tools. There was only one application I found that did this best and it was JMeter.
This is not to say JMeter is perfect. It can be mind-numbingly and frustratingly imperfect at times. But I have found it to be an incredibly helpful tool.
The tutorials on this blog outline the pattern I have found to be the most useful to me working within JMeter’s abilities and inabilities.