I don't understand why hashrate would matter? You'll just have a larger variance (payouts would be the same) based on size. Mining with 1khs is the same as mining with 1000khs in terms of payouts (you'd receive 1/1000 of the payout). There will be slight variations depending on when shares are actually found, but the miner difficulty doesn't affect it much at all.
If you're mining with multiple workers, it matters even less, all that matters is the overall hashrate (1.2MHs in this case)
Since you fixed diff to 512, my reported hashrate and shares have not stopped fluctuating. I have a smaller CPU machine mining at 40kh/s, a 660ti mining at 200kh/s, and a 280x at 700kh/s. My lowest reported hashrate over the last 8 hours (of no changes on my end) was 185kh/s, and the highest was 1500kh/s. My average is DEFINITELY less (about ~830 instead of ~920) over the last eight hours than it was the previous eight before that.
As a result my shares have been all over the place, sometimes as low as 5500 / ~100000000 per round, sometimes as high as 12000 / ~100000000 per round.
Is this averaging out to what I was getting before? Because from what I'm seeing it isn't. Would it not be only slightly more difficult on the network to allow for hard-coded client-side diffs as low as 256 and as high as 1024? That should cover most people.
ETA:
Just look at my hashrate over the last 8 or so hours. There is obviously a huge difference in saw-toothing going on.