So ... after effectively being told I was wrong by slush ...
... and not using stratum since the 2 pools were not in my list of pools that I would consider using ...
I added a stratum pool to my list (of 13 - so now 14) pools and pool duplicates today
I added BTCGuild to help with testing the code.
And the very first difficulty switch I got:
[2012-10-21 09:11:09] Accepted fbab8535 Diff 1/1 ICA 0 pool 2
[2012-10-21 09:11:16] Accepted 85774b9a Diff 1/1 GPU 1 pool 2
[2012-10-21 09:11:42] Stratum from pool 2 requested work restart
[2012-10-21 09:11:42] Rejected 3b789247 Diff 4/2 ICA 1 pool 2 (olddifficulty)
[2012-10-21 09:12:03] Accepted 77567e1c Diff 2/2 GPU 1 pool 2
[2012-10-21 09:12:24] Accepted 5326e93f Diff 3/2 GPU 1 pool 2
Lost me a share ... but looking at it I don't even see why it would since it was higher difficulty than the required target.
Of course if it had been lower difficulty, then I would have lost it due to the argument that slush said was invalid.
But I lost it when it was higher difficulty so I guess that's a problem with BTCGuild?