After all, post-compilations all members from the Java source file and its corresponding AspectJ files end up in one java class file and all members there must be assumed to be reachable within this class, just as with regular java-files, no?
Not exactly. ITD members are not pushed into the target type during compilation. Internally (and this is rather unimportant from a user's perspective), aspectj will create accessors with appropriate modifiers for all of its ITDs so that target types can reference them.

It is confusing to think of AspectJ as a pre-processor that simply adds a few extra members (for ITDs) and adds a few code instructions (for advice). Thinking this way, you will miss some subtleties of the language (such as access modifiers for ITDs). Rather, you should be thinking of AspectJ in terms of the aspects and crosscutting concerns (try to avoid the impulse to mentally perform weaving).

This is not an easy thing to do, and takes lots of practice with the language, so I am not faulting you. If you are interested in really learning to think in aspects, then I'd recommend AspectJ in Action (second edition).

ps- I'm not exactly sure if I answered your question. So, please rephrase if there's anything I didn't make clear.