Implementing controller logic in main cpu and using ram as cache is possible. It might even be desirable as that would allow per game optimized caching and cache size instead of generic logic that might not be optimal in all cases. This might also mean game engine doesn't need to have it's own cache in case controller software is good and configurable.
so now your going to trade ram for drive access caching ? Your just going to dump more stuff over busses instead of just adding more cache to the drive. As time goes on and you release new revisions you can add a faster ssd with more cache