XBee ZB End Device transmit reply count weird behaviour

I have used two XBee ZB modules as End Device (w/ router API firmware) with parameter (SM=4 and ST=0xFFFE) so it basically never sleeps. When transmitting data (short message every 10s) I will get lot of transmit status (0x8B) with transmit retry count increased. But when using modules as pure router (SM=0) all transmit status (0x8B) has zero retry count. Also basically none of the transmitted messages failed when using pure router role but there are failures when using end device role.
Is this some sort of feature in end device role or even a bug? Why using the end device role in this way is much worse than using pure router role?
Actually this same applies to PRO modules as well.
I did not change the location of RF modules just changed those parameters. No changes on environment at all.

End devices are intended to sleep and poll their parent Routers periodically. When you set the SM command on the router code you are using to one of the sleep functions, you turn it into an End device. This means that if you want to send data more often from an End device, try setting the PO command at a low value (Poll more often). Also make sure that you use hardware flow control so that you do not over run the buffers.

But PO is already default. And cycle is 10s so I doubt that it will over run the buffers with rather short message. As that ST is set 0xFFFE it basically will not sleep at all. This does not explain the transfer reply count difference between these roles. Pure router works much much better - no re-transmissions, no failed transmissions. But with end device role this is not good.

You are not understanding. The Zigbee protocol only allows for two RF packets or 120 bytes total to be held in the RF buffer which is where the data is passed to. You need to increase the Poll rate to send the data packets to the Parent nodes more often and to clear the buffers.

So if I set e.g. PO = 2, does that mean 2*10ms=20ms polling rate. At least with very quick test this seems help on this transmit reply count which now stays zero as on with pure router role. I still used ST=0xFFFE.

That is correct. Setting PO to 2 will tell the end device to poll/send its parent once every 20ms for data.