Why no dry run ability?

Here is a recent post on some of the reason why and it looks like some progress is being made, but on an opt in basis by module.
https://groups.google.com/forum/?fromgroups=#!Vhld_PWS9-k/GisDUQTZNMgJ

More specifically, it allows us to implement the framework immediately
without making every module aware immediately.

And for some it is less important.

The most interesting things are package deltas and config file deltas.

Note that all modules are already aware of whether they make any
changes or not, and are generally idempotent, so this is not a large
stretch by any imagination.