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
Code:
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.
57 profile=/etc/profile
58 userprofile=~/.profile
59
60 if [ -r $profile ]; then
61 source $profile 1> /dev/null 2> /dev/null
63 fi
Because possible error messages are silenced on line 61, and because way Xsession gets executed
Code:
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
Code:
%s/lxc-generic-/lxc_generic_/g
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.