En mi ignorancia....Yo creo que tú eres más experimentado que yo en cuanto a C++Builder (por lo que he visto).
Pienso que la sobreescritura es un estado de la máquina (computador)... tratándola como un objeto o componente se podría decir que es una propiedad.
La mayoría de los componentes tienen el alcance o selección o enfoque.. esto se puede ver cuando se presiona el tab.
Desde aquí se me ocurre una solución:
cada vez que obtengas el enfoque (OnFocused creo) en tu TMemo o en tu TRichEdit puedes leer la anterior propiedad y guardarla en alguna variable. Colocarla en modo sobreecritura y luego cuando la pierdas restaurarla.
Dime cómo se hace y si funciona...
Es solo una idea.
joseluisbz@bigfoot.com