[eluser]Aken[/eluser]
This is not a bug. The limit() functions checks for an empty string using this line:
An integer of 0 will be the same as an empty string in that context. So that is why your offset of 0 is not being displayed.
nzmike is right, though... A query with only a limit set (with no offset) will always return results from the beginning of the row set (up to the limit). There's no reason you should need to make sure the offset of 0 is included, because it's already there by default. Remember that the offset does not mean "Start at 10th id" or similar, it means "Start at the 10th row of the matching rows".