To add to what tamhas said:
The bad, worse, worst thing about not controlling buffer scope is when you're updating the database. If you don't use a defined buffer that is strong scoped to the same block to which the transaction is scoped you may wind up dead ( share ) locking each and everyone. At the end of the transaction scope, if the buffer scope is larger, the lock on the record doesn't get release completely, instead it get's downgraded to a SHARE-LOCK - there you are ...
It's about control: It's up to you to trust that the default behavior will eventually behave like you expect it too, but I would like to take control and responsibility. It's like with the garbage collection in other technologies - it's a nice thing, but I would just use it as a last resort and not rely on that it takes care in the right way where I am sloppy ...
Heavy Regards, RealHeavyDude.