The command `rake -P` lists out all rake commands and dependencies regardless of description (`rake -T` only lists commands with `desc`). Here's the timed output from codetriage:
https://gist.github.com/schneems/85f3ea72993771431d3f

It does take slightly longer to run than `--dry-run`:

```
$ time RAILS_ENV=production bundle exec rake assets:precompile --dry-run
** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute (dry run) assets:environment
** Execute (dry run) assets:precompile

real	0m2.833s
user	0m2.236s
sys	0m0.508s
```

However we only need to run it once then we could see if any other rake tasks we might potentially want or need, where as `--dry-run` has a cost for every execution. The biggest benefit of using `-P` over `--dry-run` is that we can determine if rake is busted separately from whether or not `assets:precompile` exists on a system.