Yep, exactly. The environment variables would allow you to build grunt targets based on purpose rather than environment/purpose combo.
dmc has worked out really well for me thus far, although I’ll admit to just starting to make the jump over to it.
dmc grew out of grunt-ant-sfdc (https://github.com/kevinohara80/grunt-ant-sfdc) which offered hardcoded and environment variable style configuration.