The limits are not with JBoss AS but rather with the JVM. If you run a 32-bit JVM you cannot make the heap larger than about 1.7GB (Windows) or 2.7GB (Linux). Wit ha 64-bit JVM you can get larger heaps, but larger heaps are not always practical - a major GC can take a long time.
Some multi-core chips tend to share L2 cache between the cores (on my Intel quad core, I have two L2 caches, each shared by two cores), in which case you have fewer issues cache invalidation among the threads. But multi-core chips also tend to not have a memory bus per core - often a pair of cores shares the memory bus. But this is all dependent on whether you are looking at Intel or AMD chips, each is different. The best thing to do is benchmark your app with both sets of hardware. If that is not possible, go with the hardware that gives you the most on-chip cache.