Using the mxd.findAndReplaceWorkspacePaths method, if and MXD is updated and the path the the .sde connection file moves again all of the data sources will break again.
Is there a method to permanently update each SDE layer in an MXD Table of Contents to permanently store the SDE Server and Service? Ie. Just replace the SERVER and INSTANCE for each SDE layer in an MXD using python or ArcObjects in Pyhton?
"Database Connections\Connection to Foobar.sde"
, and there is no way to just pass or save the SERVER and SERVICE info directly. I would be delighted to be proven wrong. I can imagine a hack to store a dynamically generated sde file in the same directory as the mxd, or even perhaps inside the mxd, and then refer to that instead; don't know how to implement it though.