Reads the file in key order, and then writes out a new file in that order.
What this does is remove any 'deleted' records that haven't been overwritten yet, puts the .dat file in key order so makes accessing seq records quicker (and possibly in the same block read), and reduce the size of the .idx file as it is packed better if its in order and reduces BTREE levels, which makes indexing faster.
All of this helps performance and also reduce the size of the files.
As far as I am aware, there is no other util that does this, and I would strongly recommend that this is done on the whole system every 6 months or so. (Note: System must be 'offline' to do this)
The bcheck -s thing resizes the index node. I looked into this some years ago, and could not find any particular increase in performance changing this. The biggest saving is defragging.