When this variable is set to t, expand-region behaves unexpectedly; it'll mark a word or a symbol, but most of the other expansions just jump to BOF.
From the docs :
set-mark-default-inactive is a variable defined in `simple.el'.
Its value is t
If non-nil, setting the mark does not activate it.
This causes C-SPC and C-x C-x to
behave the same whether or not `transient-mark-mode' is enabled.
Wrapping er/expand-region and er/contract-region to set this variable to nil during the call does work, but I'm not sure this use case warrants such an ugly hack.
I haven't had time to grok the whole point/mark/transient thing though, so I'm not sure whether this could easily be handled at the implementation level.
Add support for set-mark-default-inactive
Thanks for the detailed report!
I added it in the core, by adding the wrapping there. It makes sense, otherwise all the current and future mark functions would have to explicitly activate the mark when setting it. This fixes the problem in one spot.