I am a very experienced Java developer who has been learning AEM for the last year. One of the things that makes me crazy is that it's so hard to debug.
In theory most of AEM is open source. In practice, it isn't.
Inevitably, I'm going to want to debug my application, but Adobe has gone out of its way to make that difficult. I can't just download a source jar with my IDE and set a break point (as was possible when using most other frameworks). When I do download a source jar Sling/Jackrabbit, whatever, inevitably, the source doesn't match.
Why doesn't Adobe choose release versions of the frameworks that it uses?
It's horribly frustrating. I understand that you are selling so VPs not developers, but you aren't making friends by doing this.
I don't think I would recommend that anyone use AEM.
Can you give an example where the problem arises, that a sling or Jackrabbit bundle you downloaded does not match the code?
Also the AEM uber jar only references the API bundle versions, and does not specify the version number of the implementation bundles. This is by design. If you really want and need to debug into the implementation bundles you probably have specify them in your POM as well, just to pinpoint to the correct version.
And to be honest, I was not aware of the problem you describe. Either other developers solve it for themselves and never talk about it, or it's not a problem at all for them (and then I don't know why). Maybe others can elaborate a bit on this, because I don't debug into the live system.