I just had my whole house gutted and renovated due to a fire. I am having a problem with the paint they used. The contractor insisted on using flat paint as it could be touched up and would not show. Well, every place they have touched up shows a different color even though they are using paint from the original batch. Could this be because the new sheetrock was not sealed properly before painting, thus the sheetrock keeps absorbing more paint?
At minimum, you have to let the paint cure before you can really compare it. It will blend in over time for the reasons bib mentioned.
It might also help to wipe down your walls - smoking, cooking, dirt and grime will discolor them, sometimes noticeably.
Find out how the new paint was applied. If the original paint was applied with a roller, and the patch with a brush, there will always be a noticeable texture difference.
If the patch was not primed before it was painted then this might cause a color difference too.
Really the only way to get a perfectly blended wall is the repaint it.
Paint changes color over time due to both chemical shifts and light exposure. The paint in the can has neither aged in a dry state nor been exposed to light.
The most common trick in matching paint is to cut a small patch of the drywall surface paper and paint from the area you are trying to match, and lift it with a small putty knife. Take it to the paint store for a custom match (computerized and amazingly accurate). The cut section can be spackled and repainted with the new matching paint.
Even then it is desireable to repaint a whole section of wall up to a natural break such as a window or doorframe to minimize the line where the old meets the new.