OpenBSDでxenodmを使ってログインすると、「~/.xsession」が呼ばれます。その関係は、「/etc/X11/xenodm/Xsession」の最後を見れば、よくわかります。具体的には、次のようになっています。
# The startup script is not intended to have arguments.
startup=$HOME/.xsession
resources=$HOME/.Xresources
if [ -s "$startup" ]; then
if [ -x "$startup" ]; then
"$startup"
else
/bin/sh "$startup"
fi
else
if [ -f "$resources" ]; then
@XRDB_PROGRAM@ -load "$resources"
fi
@bindir@/xterm &
@bindir@/fvwm
fi
do_exit
まず、「~/.xsession」の有無で処理が分かれます。あれば利用するし、なければ「fvwm」が使われます。
もし「~/.xsession」が存在するとしても、実行可否で処理が分かれます。実行可能であれば直接実行されるし、実行可能でなければ/bin/shに解釈させます。つまり、実行可能な「~/.xsession」であれば、ファイルにシバンを書いておくことで、/bin/sh以外(例えば/usr/local/bin/tcshなど)を使うことが可能になります。
もしOpenBSDでcwmを使いたければ、「~/.xsession」を用意しておく必要があります。実行可否は、どちらでも構いません。ただし/usr/local/bin/tcshを使いたいのであれば、実行可能とし、さらにシバン(#!/usr/local/bin/tcsh)を書いておく必要があります。