My issue is that I have a 51 cm Cervelo, but the reach is too far. I've tried changing out handlebar stem to shorter/angeled, spacers and smaller handlebars. That helped some, but still a little too far reach for comfortable longer rides. I want to get a 47 cm frame with same changes I made for the 51 in order to have less reach, but the bike shop says that the reach will only be one cm shorter, and the handlebars will be two cm down. So effectively the reach will actually be more. That doesn't make sense? And the bike shop does not have any 47 cm bikes in shop.
The bike shop is correct. This will depend on what model of Cervelo you have but looking at the Classic Road geometry here,
48cm: stack 505mm, reach 560mm
52cm: stack 530mm, reach 569mm
That's annoying but kind-of does make sense. At the small size extreme of frame geometry it's hard to reduce the length of the bike and leave enough space between the wheels, because the wheels are the same diameter as larger frame sizes. This is why some small frame road bikes are built around 584mm (650b) wheels instead of 622mm (700c) wheels.
It's possible that 0.9cm reduction in reach is enough, and you can raise the bars up a couple of cm with a different stem.
If you are thinking about buying a whole new frame and transferring wheels and components over, you should probably think about a whole new bike of a different model/brand that fits you better. If you sell your current Cervelo the overall cost may be comparable to buying a frame.