Doesn't P mode make adjustments to always have your exposure in the middle of the scale? I thought that was one of the complaints with P mode, because sometimes, depending on your metering method, a middle of the road exposure will under or over expose your picture. e.g. a dark object with a bright light surrounding it or vice versa.
Program mode doesn't affect the metering. You will get the same exposure level (brightness or darkness) whether you use Program, Aperture Priority, or Shutter Priority (or even Manual if you adjust it to match the camera's meter reading).
Let me try an example with a picture. This picture was taken at an ISO of 400, with a shutter speed of 1/125 second, and an aperture of f/5.6. The "effective" focal length was 45.5mm.
The moment I clicked the shutter, the camera's meter determined how bright the scene was. In order to properly expose the picture, three things had to be weighed - the ISO, the aperture, and the shutter speed. I already set the ISO to 400.
Based on the amount of light the meter determined was present, the correct values for the exposure would be:
f/22 - 1/8s
f/16 - 1/15s
f/11 - 1/30s
f/8 - 1/60s
f/5.6 - 1/125s
f/4 - 1/250s
f/2.8 - 1/500s
If I was in aperture priority mode and wanted minimal DOF, I might have chosen f/2.8. The camera would have picked a shutter speed of 1/500s. I might have wanted a large DOF and picked an aperture of f/22. In that case, the camera would have picked 1/8s.
If I was in shutter priority mode, I might have wanted a high shutter speed to freeze any action and picked 1/500s. In that case, the camera would have picked an aperture of f/2.8. I might have wanted a low shutter speed to allow for some motion blurring and picked 1/15s. In that case, the camera would have picked an aperture of f/16.
With Program mode, the camera has no idea what I want for DOF or for freezing or showing motion. It picks something the engineers thought would be reasonable. First, it determines what shutter speed would let a typical users get a decent shot without using a tripod. The longer your zoom, the higher the shutter speed it tries to pick. In this case, my effective focal length was 45.5mm, so it was trying to get a shutter speed at or faster than 1/45s.
It would also try to pick an aperture that it thinks would be sharp for that lens. It usually likes to pick apertures two stops smaller than the maximum for the lens and tries to avoid apertures smaller than f/11. So for this lens, that would be the range between f/5.6 and f/11.
If you look on the chart, there are two combinations that would make it happy - f/5.6 + 1/125 or f/8 and 1/60. Anything with a slower shutter speed might be too slow for me to hand hold. Anything with a wider aperture would not be optimal for my lens. It can't always pick something optimal, so it picks the most reasonable of the choices that it has.
The important thing is that Program, Aperture Priority, and Shutter Priority are all picking from the exact same list of acceptable combinations of f/stop and shutter speed. They'll all be same lightness or darkness. The metering mode (spot, evaluative, center-weighted, etc) determined how light or dark things should be. With Program mode, it picks from any valid pair of values on the list. With Av or Tv, you pick one value and it picks the other value from the list of valid values.
The list of valid values is different for different levels of light and ISO. If things are brighter or the ISO is higher, you get faster shutter speeds for the same apertures. If things are darker or the ISO is lower, you get slower shutter speeds for the same values.