The reason that solids have no effect on the position of the equilibrium is that the equilibrium is essentially a statistical process. Once your equilibrium is established, at whatever amount of reagents that is, the chance of a reaction occurring in the forward direction is exactly the same as the chance that reaction will occur in the reverse direction. In the example that you gave, the chance that a molecule of CaCO3 will spontaneously fall apart to form a molecule of CaO and a molecule of CO2 is exactly the same as the chance that a molecule of CO2 will slam into a molecule of CaO and form a bond.
Suppose all three of these molecules were gases. A molecule of CaCO3 then would be surrounded by molecules of CaCO3, molecules of CaO, and molecules of CO2. Collisions between all of these molecules transmit energy, and any lucky collision could cause enough of a change in energy to break the molecule of CaCO3 down. If you increase the concentration of any of these molecules, all of the molecules are now closer together, the number of collisions rises, and the chance of a molecule breaking down increases.
Looking at CaO - it is also surrounded by molecules of CaCO3, CaO, and CO2, but it needs to collide with a molecule of CO2 to react. Collisions with CaO or CaCO3 aren't going to do anything to it. So if you increase the amount of CaCO3 in the mixture, you increase the number of breakdowns of CaCO3 without increasing the number of collisions between CaO and CO2 - in fact, the number of collisions between CaO and CO2 are decreased. CaCO3 breaks down faster and is formed slower, and the equilibrium shifts. Increasing the concentration of CaO or CO2 will increase the number of collisions between CaO and CO2, as will decreasing the amount of CaCO3 - this will shift the equilibrium the other way. Eventually a new equilibrium will be established.
With me so far?
Now how does this analysis change of CaCO3 is a solid? Almost all of the molecules in a solid are surrounded only by other molecules of that solid, so there are now very, very few collisions between CaCO3 and either CaO or CO2. Also, the distance between the molecules of CaCO3 in the solid is fixed, and does not depend on how much solid you throw in the flask, unlike gases or solutions, where if you add more of one component, all of the molecules of that component are closer together. Only at the surface will a molecule of CaCO3 be exposed to anything except another molecule of CaCO3 at a fixed distance away.
The same thing with CaO - as a solid, almost every molecule of CaO is surrounded by other molecules of CaO at a fixed distance. There is no chance that a collision between two molecules of CaO will produce CaCO3. Only the molecules at the surface of the CaO will react. Increasing the surface area will expose more CaO, but the total percentage of the molecules of CaO that are at the surface is still incredibly small compared to the percentage totally within the solid. (For extra credit, calculate the ratio of the number of molecules of CaO exposed at the surface of a sphere of solid CaO 4 microns in diameter to the molecules inside the volume. 4 microns is the smallest size I could use one of my fritted funnels to remove).
As for the CO2 hitting the CaO and reacting, it is possible to calculate the mean free path of a CO2 molecule in the flask before it hits another molecule, and there is a much larger volume of CO2 molecules that has a chance of hitting a CaO molecule.
So in your example problem, changing the amount of CaO will not significantly change the odds that one will get hit by a CO2 molecule and react. The molecules of CaO are so tightly packed that only a very tiny proportion can be hit by a CO2 molecule.
With the rate of decomposition of CaCO3 essentially constant and the rate of formation of CaCO3 dependent only on the density of CO2 and not on the amount of CaO, the only component you can adjust to vary the equilibrium would be the amount of CO2.