The part of the experience formula that gives an extra bonus for shield-users looks like this:
BlockMod = 1 + [Total Blocks] / ( [Total Attempts] - [Total Blocks] )
...where [Total Blocks] is the number of blocks your bot made in the fight, and [Total Attempts] is the number of attempts to hit you that your target made. This results in a variable used in the experience formula that multiplies your gains by a certain amount, depending on the percentage of attacks you blocked. Higher is better, and results in more experience.
However, if you block every single attack, using ten attacks as an example, would this not result in:
1 + 10 / (10 - 10) = 1 + 10 / 0
Which gives you a division by zero and voids the entire formula, resulting in no increase experience for that fight.
My experiences seem to support this as well - the few times I've had a fight where I have blocked every single attack, the experience gained has always been at the very bottom of the expected range against that particular target, similar to if you were not using a shield in the first place.
I don't know what exactly the variable will return to the experience formula when there is a division by zero, but it doesn't seem to break anything. Rather, there's simply no bonus for blocks.