Good strategy if you can use DTDs. This restriction makes me use other ways. Sometimes i take the document() function to include larger parts. The advantage over Entities is that the values come in at stylesheet runtime. Expansion of entities is done at parsing time. So you have no conditional inclusion of values.
But you are right: Entities are made for shortcutting.