I've ran into quite a weird problem. I'm working with a site (EPiServer 6 R2) and the "Mark page as changed" checkbox doesn't have any effect. The changed date is always changed/updated once a page is published. I know you can override this property with code but I just can't find anywhere in the project/code where it happens. Anyone with any ideas? Seems like quite a mystery to me right now...
Search for the strings "PageChanged" and "PageChangedOnPublish" in your project.
If that returns nil, investigate if you have assemblies in your bin folder from other sources than EPiServer or your project where you have the source code that could be the culprit.
A tool like .NET Reflector where you open all assemblies in the bin-folder could help you track down this regardless if you have the source code or not.
I managed to find it after all... e.Page["PageChangedOnPublish"] = true; was hiding in an InitModule.cs file. Thanks anyway Fredrik!