Just an observation:

In SSRS, I would have expected the today() function and the execution function to return the same day.

This is true during normal execution from report manager, but if you were to look through the report history snapshots, then it would not. If you used the today() function, then the current date would be displayed in the snapshot - NOT the day when the snapshot was made.

I now see the point of the default execution time rather than this.

Just sharing my two cents.