SoM: Only include SoMs from the same hr in the calculations. (Force the player to manually check SoMs from previous hrs).
edit: If you really want to get fancy:
1) Check if any units were trained/returned in the difference between the SoMs. Defer to most recent SoM if their is a difference.
2) Check if the player sent on an attack. Defer to most recent if their is a difference.
The pre-edit suggestion is (should be) the current behavior. If you can provide a case that replicates some other behavior, please PM/e-mail/AIM me.
I don't really understand Add-on #1. It seems like you're suggesting synthesizing between multiple hourchanges, which is kind of at odds with the base suggestion.
For add-on #2, the calculator kinda-sorta will handle having both a pre- and post-attack from the same HC active. The confidence intervals will wind up with "negative error", but the way it calculates the maximums (which is what it uses for defense) treats 0 units away (or home) the same as not having a SoM -- it doesn't consider 0 to be a valid maximum home (or minimum away), and will always override a zero with any non-zero number (I think...). So you should have a case where having one or more SoMs with 0 away and then one with some away will use the some away as the number to calculate off of for the actual "maximum number of units home", which is what the defense calculation is based on. The confidence intervals will just be all kinds of messed up until you disable the pre-attack SoMs with the ops control panel.