As far as cores vs memory, you're talking about 20GB on 16 cores; that's (optimistically) 1.25 GB per core, which is not a tonne of memory if you really are pinning all 16 cores. We are definitely running systems with higher memory/core ratios than 20GB/16, and our vendor keeps trying to sell us on boxes that can be configured with memory into the many hundreds of GB across 24 cores.
As far as application performance, 16 cores and 20GB of RAM isn't necessarily overspec'd for Oracle; we definitely run systems that big. That said, 20GB of RAM doesn't do much for you when you're running a 32-bit kernel; rebuilding on RHEL5-64 would be a good choice.
You'll also need to have your DBA look into configuring Oracle to take advantage of the large amount of physical memory - our DBAs have 'disabled AMM and configured huge_pages' on our bigger Oracle servers.
Even if the machine is somewhat overspec'd for your current workload (and only long-term stats monitoring will really bear that out), odds are good you'll grow into it; and during periods of unforecasted heavy load, it's nice to have some overhead to play with instead of dying instantly.
Hope that helps!