Dry-run pool layout reports omit any cache devices specified, although the cache specification is honoured when the create or add is actually run. For example:
# zpool create -n tank ada1 cache ada0p5 log ada0p6
would create 'tank' with the following layout:
# zpool create tank ada1 cache ada0p5 log ada0p6
# zpool status tank
I would expect the dry-run to reflect the actual results. It was counterintuitive and kind of scary that it didn't.