It depends on the type of object you're injecting. In Java, you can't proxy a final class. So classes like java.lang.String, java.lang.Integer aren't proxiable. We can only provide those as dependent scoped beans. I asked to avoid obtuse validation, since the user will be accustomed to the behavior based on how CDI works. It shouldn't come as a surprise that this stuff doesn't work right when you inject into app scoped beans.
I believe everything in Hammock is a dependent scoped bean, with the intention that you're only injecting it into a request scoped bean. I think one of the examples is creating your own bean that is @RequestScoped.
John