So far, that’s the only way to go, by using placeholder.
If you want a cleaner or procedural process for the snippet or script, you can use $modx->runSnippet API from MODx.
function runSnippet($snippetName, $params=array()) { ... }
You can call some other snippet and pass necessary parameter for that snippet. Witht this, you don’t have to worry that your designer will put the snippet calling in wrong order, all the need to do is put the main snippet that will call and pass value to other snippet and process the output.
Just my two cent