We keep track of expired items per vbucket and only actually account for an expired item in the stats if one of these scenarios occurs.
1. The item is expired by the expiry/item pager
2. The item is accessed by an operation (eg. get or set) and since the item is expired it is deleted.
There is actually a third way that an item can be expired and that is through replication. If an item is expired on an active vbucket then a "delete" is replicated to the replica vbuckets. Since we don't differentiate between a delete and an expiration the replica vbucket must assume this is a delete and as a result cannot properly update its expired items stats.