Immagino che hai copiato il codice. Il comportamento che noti corrisponde a quello che è stato programmato quindi nessun problema.
In altre parole.Codice PHP:
if($offset-5>0)$min=$offset-5;
else
$min=$offset;
if($offset+5<=$pag) $max = $offset+5;
else
$max = $offset;
for ($i = $min; $i < $max; $i++)
Appaiono sempre nella lista le 4 pagine successive a offset. Ma se offset > 5 allora appaiono anche le 5 precedenti.