What are AWS CloudWatch's limitations?

AWS itself limits what you can see and collect, especially as you use the platform services which are abstracted. Amazon provides Cloudwatch to give you some metric visibility, but not a whole lot. This is what CloudWatch provides. When you monitoring AWS instances with other tools, including the ones you mention above, and others they actually use the CloudWatch APIs to collect the metrics.

There is a lot more to monitoring than collecting metrics (Sorry Librato, and others) this is what APM tools do (like New Relic, AppDynamics, Dynatrace). The secondary problem is that none of the APM tools collect logs aside from AppDynamics. All of these tools interface with CloudWatch and use their own agents to collect at the application and end user experience side.