<charinsert> buttons should probably replace selected text with the inserted string, instead of inserting before it. Inserting before is B/C behavior to be compatible with the now removed insertTags method in MediaWiki core, which behaved that way because it was mainly meant to insert open/close tag pairs (where wrapping the selected text makes perfect sense). Other character insertion tools (in WikiEditor and VisualEditor) also replace selection so this would help with consistency.
(Inserting an open/close pair of tags/braces/etc, also supported by CharInsert, should keep wrapping the selection though.)