Firstly, it is very possible (and not all that hard) to remove Roo from a Roo-generated app. It's a 3-step process and takes only a few minutes:
1. Do a "Push-in" refactoring (requires STS or Eclipse with AJDT plugin) to push the ITD stuff into the
Java code.
2. Globally remove all Roo annotations (should be as simple as replacing "\n.*Roo.*\n" with "\n"...with RegExp turned on)
3. Remove the Roo annotations dependency from the pom.xml file.
Adding Roo back is fairly easy, too. But it's hard to get the project back to where it was prior to the removal of Roo, so old Roo-managed stuff will no longer be Roo-managed...even though you'll be able to move forward with Roo for new stuff.
The DAO stuff is a point of controversy, I suppose. No comment from me on that one.
The learning curve for Roo is almost zero...it's just easy to use. The key thing is to just know to ignore the ITDs and trust that they'll magically do their job. But, using a tool like Roo is no excuse for not learning Spring. It's intended to get you to where you're going faster...it's not intended to replace good development skills. So, you'll still need to know how to do the real work of building a real application. Roo just gets you to the point where you can do that a lot faster.