Ok, i finally found the edge case that was driving me nuts :)
Take this column selection, made via Shift+UP and tapping option:
TM_SELECTED_TEXT now holds “\n\n”, TM_SELECTION is "4:3x2:3”.
As soon as I’m moving to the right and back left via the cursors, TM_SELECTED_TEXT changes to nil and the selection string is now "2:3&3:3&4:3”. Even if i press CMD-L to mark the whole lines, TM_SELECTED_TEXT still contains “nil”.
It’s clear that internally the cursors change from some kind of “normal” column selection to multi-cursors, as one can see considering the selection string (initial separator “x”, post movement separator “&"). In my use case, I can still distinguish this state of the cursors by parsing the selection string, but it’s a little more complicated than relying on the newline.
Just wanted to share this if someone trips over something similar, i guess it’s nothing that should (or can) be fixed - just a side effect of the multicursor implementation.