This behavior depends upon the InterceptionType. By the way, this has caused so much problems for users that Seam 1.1 will default to @Intercept(ALWAYS).
Thanks for the hint, Gavin.
I just read in the reference that the default interception type is INVOKE_APPLICATION. So by default injected components are null from (1) to (4) and thy have their correct value only from (5) to (6).
But it's good that you want to change the default behaviour. btw: any idea when 1.1 will be final? I don't want to know an exact date, but if it's not within the next month I don't have to worry about my current project to be outdated ;).
I would love to do a release in late September, but not sure if I can get everything I need to get done done by then. (1.1 was supposed to go out weeks ago.) We'll see.