Some other alternatives and ideas:
The problem is that KMemo is custom drawn.
Under Windows, the app can tell the OS to paint the caret anywhere on the screen (inside the apps window). So under Window SetCaretPosEx tells the OS to draw a caret for KMemo.
Under Cocoa (and likely Carbon) SetCaretPosEx is emulated in the LCL-widgetset code. There is a timer, and the LCL paints (and un-paints) the caret.
So unless the LCL can be fixed to query the system settings, disabling for the System, does not affect the LCL.
Mind, that a TEdit is entirely drawn by the OS, content and caret. So a TEdit will follow the rules. The issue only exists for custom draw.