If I understand your question correctly, you should be able to cache anything that implements Serializable. That's how we currently do it with JBC 1.4.1...we don't use AOP at all.
I guess I am confused, in http://www.jboss.org/file-access/default/members/jbosscache/freezone/docs/1.4.1.SP4/faq/en/html_single/index.html for example, I read
PojoCache (currently implemented PojoCache as a sub-class of TreeCache) is a fine-grained field-level replicated and transactional POJO (plain old Java object) cache. By POJO, we mean that the cache: 1) automatically manages object mapping and relationship for a client under both local and replicated cache mode, 2) provides support for inheritance relationship between "aspectized" POJOs. By leveraging the dynamic AOP in JBossAop, it is able to map a complex object into the cache store, preserve and manage the object relationship behind the scene. During replication mode, it performs fine-granularity (i.e., on a per-field basis) update, and thus has the potential to boost cache performance and minimize network traffic.
Well, of course, the PojoCache does use AOP; that's what differentiates it from the TreeCache.
But if you try to store an object that has not been instrumented by AOP, it will just serialize it, like the TreeCache.