How the data will be store, used and extract that depends on your application, the word nasty is not the word I will used when I don't understand or disagree with something. This implementation is only a guide line that someone agree or disagree is understandable as long as a proper alternative is provided. Here is the scenario:
On a developers shop where source control hasn't been fully implemented at the database level, ddl triggers is a good way to store a historical record of most objects changes.
If most objects normally never change then please explain how that can cause performance issues. ( This implementation shouldn't be in a production environment)