EMC tracks difficulty per job, not per user. So it works on both the getwork and GBT side, so it doesn't matter which protocol you use or when you submit the work, as long as it's not stale, it will accept it if it's under the difficulty for a particular job. If you're discarding work when you receive new work without submitting it then yes you'd lose shares, but if you submit it even after you get new work, it's likely still valid within the stale window.
Woo - nice.
That's my argument against Stratum at the moment, the fact that difficulty is separated from work.
Now if we could just get GBT to reduce the amount of data that it needs to send to the miner (more than GetWork with roll-n-time), use a better protocol ..., and solve the mystery of ignored transactions; then if Stratum's diff was also fixed we'd have 2 closely competitive options ...