Here's an example:
It starts off big, but then after a while, it drops down to low accepted shares, but hashing is still the same.
Is there a bug, something malfunctioning in my system or is this how it is?
Why not just keep restarting the miner every minute or so to max out accepted shares?
it's the pools way of determining your hash rate.
ultimately our cards are just looking for the main block solution and bank the reward for doing so.. but for pools to work they need to measure your performance somehow and allocate funds to you accordingly weather you score the solution or not.
so on top of the main block solution, you are reporting "close calls" up to a certain diff level that the pool server is specifying.
it starts out accepting rather easy shares so if someone is just cpu mining it does not take forever to get the first share, but then to cut down on traffic if you are submitting lots of shares that are say 128k with a multi-gpu rig it will ramp up to only accept 512k diff shares and they free up 3/4 the bandwidth.
it's called variable difficulty and some pools allow you to tune this setting to optimize your hashrate a tad.
adaseb is totally right, i just wanted to elaborate.