The answer is that they use slightly different data sets.
$span(time_delta=604800).radiation.max looks through the archive records, typically spaced every 5 minutes apart, and finds the highest value for radiation for the last 7 days. Each of those archive records is an average value seen over the 5 minutes it represents.
$week.radiation.max runs from midnight at the beginning of the week to the present time, so it can use the daily summaries. These have recorded the highest value seen for the week, including LOOP packets. So if there was a momentary high value that lasted for only a second, this tag will find it.
If it bugs you that there is a difference, you can set option loop_hilo (under [StdArchive]) to false, and LOOP packet values will no longer be used for the daily highs and lows.
Hope that helps.
-tk