Oi Frederico,
"...gostaria que os colegas comentassem a respeito para que possamos ter mais subsidios sobre este tema."
A bufferização pessimista tem algumas questões indesejáveis, como a contenção do registro/arquivo por um período indeterminado de tempo. Sendo assim, pelo que tenho visto como uma "best practice", a bufferização otimista seria mais interessante pois mantém o tempo de bloqueio no mínimo póssível e evita, assim, questões de concorrência que, cá entre nós, não são muito aceitáveis nos ambientes operacionais de hoje.
Outra coisa, será possível mudar o tipo de bufferização em tempo e execução ? pois assim se o sistema for utilizado como monousuário poderiamos utilizar bufferização otimista ou então nenhuma bufferização.
Sim, é possível. Você poderia ter uma lógica mais ou menos assim, por exemplo, no Load de um Form (pseudo-código):
USE MinhaTabela IN 0
IF <Ambiente Monousuário>
CURSORSETPROP("Buffering", 2, "MinhaTabela")
ELSE
CURSORSETPROP("Buffering", 3, "MinhaTabela")
ENDIF
Não sei vale a pena ter toda esta líogica adicional na sua aplicação (e acredite, não vai ser só na abertura da tabela), só para controlar ambientes multi/monousuário, visto que estas questões de bufferização só são importantes em ambientes com mais de um usuário...
Um abraço!