There are almost no limitations as to the scopes of the components involved in injection or outjection (a few special types of components, such as datamodels, can only reside in specific contexts, for example the datamodel can exist in the PAGE context only). So the answer to all your questions is YES, but keep in mind that:
- Injected components need to exist, unless you declare them as @AutoCreate or inject them with create=true. You can specify the scope from which you want to inject from, but it is not necessary as Seam performs a lookup of the component in all scopes.
- Outjected components are outjected into the same scope in which the outjecting component resides, unless you explicitly outject it into a different scope, say: @Out(scope=ScopeType.CONVERSATION).
Seam is quite well documented, so the reference manual is your best source of information (chapter 4.3 explains bijection quite exhaustively). Also, these things are quite simple to try out, just create a test application, make the components and test these interactions. Making a few simple tests is faster than waiting for a response in these boards.