Please someone with a clue correct me if I am wrong, but doesn't your miner drop work and not submit it when it receives a long poll when it's already doing some work?
And extra long polls from merged mining then cause you to submit less work?
Potentially. If you want to ensure you submit all work (even possibly stale ones) cgminer has an option "--submit-stale". Work that is truly stale will report as stale on the server so reported stale count increasing (but that is simply moving work from dropped locally to rejected as stale).
If any of that work is valid then you will gain those shares. Still the effect is very small depending on intensity we are talking about dropping "maybe" 1/64th of a share every extra LP. On cgminer w/ intensity = 9 and vectors=4 the GPU processes 1/64th of the nonce range with each iteration. At most you lose one iteration of work per "extra" LP. With NMC difficulty so high there is only roughly 1 extra LP per BTC block. So 1/64*6*24 = 2 shares per GPU per day. At lower intensity of vectors it would be less. We are talking about maybe a penny per week.
The only way to do it better would be a more comprehensive miner protocol. If the protocol was expanded to have "LP submit work" vs "LP drop work" then miners could do "the right thing". The server always has more info than the miner. The alternative would be "smart miners" (which also solves the issue of large pools). The miner constructs its own block headers indepdently thus it would always know if work is still "partially good" and submit accordingly.
The effect is small but if you are worried use cgminer w/ "--submit-stale" option. It increases potential stales on the server (resulting in maybe 1% higher server load) but will ensure you get credit for all shares.