I see what you mean. There are a couple other ways to go on this.
1. Use a resource for the footer and use getResourceField to pull in the resource’s content field.
2. Create one document to hold the values of all the pseudo-chunks as Rich Text TVs. Use a simple snippet to get the appropriate TV’s value from that resource with $tv->getValue() wherever you would have used the chunk tag. You can use form customization to hide all table but the TV tab for that resource and let the users edit there, or (with a little trickery), you could let them use NewsPublisher to edit them in the front end. If necessary, you could also create a different document for editing each TV and hide the others with form customization (though you’d have to adjust the snippet to get the value from the correct resource).
I would probably do #2, though #1 involves less setup. Here’s a little more detail on #2:
Create a document called Chunks (let’s say it has an ID of 12).
Create a TV for each "pseudo-chunk" and attach it to the template used by the Chunks document. Call them "header," "footer," etc.
When you want to display the content of one of them, use a tag like this which calls the following snippet:
/* ShowChunk snippet */
$tv = $modx->getObject('modTemplateVar', array ('name'=>$chunkName));