JBossCache 2 will need new compat layers for things like SFSB and HTTP session replication. These are only being done for AS 5.
If you need to use JBoss Cache for your own purposes and not for dealing with AS clustering features though, you could *theoretically* use JBC 2.0.0 on AS 4.0.4.
The only place I could see this working in the "all" configuration would be inside a webapp where the 2.0 jars were included in WEB-INF/lib. In all other deployment types, a parent-first classloader is used, which would pick up the 1.x version of JBC in server/all/lib.
If you're neither using HttpSession replication nor clustered EJB3 EJBs nor JBC as a Hibernate 2nd level cache, then you could probably remove the relevant services and upgrade the JBC version in server/all/lib. There may be other incompatibilites though; e.g. incompatible versions of JBoss AOP,