I've finally found the source of the issue and it was a bit tricky.
Seemingly unrelated lxc package recently installed in my system includes definitions for bash-completion. These definitions with others are indirectly sourced with /etc/profile from xdm's Xsession script
55 # Since xdm doesn't run a bash -login shell (or any other login shell)
56 # we should source these files to set up the user's environment.
60 if [ -r $profile ]; then
61 source $profile 1> /dev/null 2> /dev/null
Because possible error messages are silenced on line 61, and because way Xsession gets executed
19 exec > "$errfile" 2>&1
the error won't appear in any log or console output and silently breaks further processing of Xsession script.
Lxc's bash-completion file /etc/bash_completion.d/lxc
does contain function names with invalid hyphen character. Simply replacing them with underscore solves the issue
does the job from Vim.
It's a question for Patrick and possibly Robby (rworkman) if the session launcher can be rewritten in a more robust way.