Note that sometimes, you have to do a choice between making it easy to modify a solution for a back-end developer and making something optimized.
CSS sprites you quoted is a good example. I don't understand how someone can create website when scalability and performance matter and have links to 100 images, 5 CSS and 15 JavaScript files from every page. On the other hand, CSS sprites are not easy to maintain, and slight changes in the design may require lots of work.
For example if you have three state icons, one below another, and you must add a fourth state, do you add the fourth icon to the bottom of the image, separately from three others? Or you add it after the third icon, moving everything else to the bottom to have some empty space for it?
The same comes with combining and minifying CSS and JavaScript files. You must do it for a website of some scale, but it would require extra effort.
It's exactly the same thing for CDN. You have to use it for large websites, but changes would be more difficult to make. For example if you changed a CSS file, you have to force the browsers to download the new one, by modifying the URI to the file to cdn.example.com/g.css?r=2
, then cdn.example.com/g.css?r=3
, etc.
Also, "easier" is relative. See, for example, the guidelines to write CSS code: personally, I prefer one style per line, with no whitespace:
#TopMenu a{text-decoration:none;color:#fff;padding:5px 10px;float:left;}
while most people would hate this syntax, and prefer the one I hate and find difficult to read (no, I'm not crazy):
#TopMenu a { text-decoration: none; color: #fff; padding: 5px 10px; float: left; }
In the same way, using jQuery doesn't mean you'll make it easier for back-end developer to modify your files, because some developers are more experienced with Prototype or other frameworks.
In all cases, a detailed documentation is helpful, if the developer wants to read it (most of them don't). You can also make the life of a developer easier by asking precisely to the specific developer how he prefers the things to be done, and by working side by side at the beginning, while building a framework (for example designing the workflow to use to minify and combine the files).