The issue is more a Java issue that a seam one. The reason why the components are not visible outside of WEB-INF/dev is because every time a component is changed the classloader is dumped and the classes are re-loaded in a new classloader, this means that according to java they are different classes. Objects outside WEB-INF/dev would see them as different classes and after the first hot deploy would throw ClassCastExceptions every time you tried to inject.
You can still inject these components into other classes, you just have to make them inherit from an interface in the parent classloader that doesn't change, and use this interface at all injection points.
So are most (if not all) of the Seam devs who are using hot incremental deploy with JavaBean components on a regular basis only using JavaBean components and no EJB components?
That way all the components would be located in the WEB-INF/dev directory and would have access to each other at all times, no?
Q1 : yes
Q2 : entities cannot be hot deployed, action java beans are all in WEB-INF/dev (but not ejbs)
For early development you can use war and later migrate to ear.