When I finally lose my mind and think that DSLs solve more problems than they create over the medium term and beyond.
If you have a sufficiently smart (TM) metaprogramming system you can just stick things like this in a macro or template then you get the expressiveness but don't have to a write DSL.