One of the largest problems we run into with supporting ServiceDesk is that during an upgrade/patch a 3-way merge must be done for the HTMPL files (old-original, old-customized, new-original) to determine what was changed and how it relates to howe we've changed. I understand part of this is because the files are 'unstructured' meaning there is little to no way for any script to parse through and understand that the differences between two files just relates to the location of relative lines. (e.g. we flip our Group/Assignee fields which always shows as different, but not 'wrong')
It would be a massive improvement (and understandably non-trivial) to move to a structured format, either retaining the field order/attributes in a database table, or to use a structured flat file form (e.g. XML). By using something that is structured, it should then be possible to automatically upgrade a form and parse the relevant attributes as needed.