Is it necessary to run sa-learn --forget on spam that has been "learned" as ham prior to running "sa-learn --spam" against it?
No, you don't need to forget first.
Or, does the latter action negate its previous learned status as ham?
Yes, sa will recognize if it was previously learned as ham and correct for that.
SA will also ignore you if you try to relearn a message as the same type (ie: if you try to learn it yet again as spam, it won't do anything because it's already learned as spam)
