I see a possible downside to using an SSD as a read cache in the way described. It would seem that every uncached read from disk will get written to the SSD if the description is correct. Of course if the data is re-accessed later, then that's all fine and dandy. However, if there is an I/O pattern that frsutrates this - sequential reads, such as backups, being one example, then it will churn a lot of data through the cache without any effect. With a volitale RAM cache that only has the effect of wiping out data that might be usefully cached, but with an SSD cache that's a lot of write activity and flash has a limited number of write cycles.
There are ways of dealing with this sort of cache issue - one of the things that can be done is to detect large sequential reads and not cache them. Certainly this thing will depend heavily on the cache algorithms being used. Running a disk backup and re-writing the limited size SSD several times over would not be a great thing to do for either SSD longevity.
Oh yes - and if a disk controllet can do this sort of caching, then it can be done in a drive. Add a few gig of SSD flash and some clever cache algorithms into a standard drive and we might well have something of use to the average PC user. Whatever is done, this needs to be kept off of the motherboards and kept in the strorage devices.