Well, this is embarrassing. :/
On investigating why my results differ so markedly from yours, I discovered that an environment variable that's typically set by the "open shell" command was already set on a permanent basis in my Terminal environment. The variable in question:
VERSIONER_PERL_PREFER_32_BIT=yes
I can only assume that this was set in the process of unorthodox testing, which we do a fair amount of around here, but the end result is that launching Beyond Compare from command line works fine for me, and that all my advice preceding this post regarding the 'bare bones' approach in terminal is useless to most Snow Leopard users.
I haven't experienced any problems that I can identify as a result of this environment variable, but most Mac devs would surely tell you that having such a variable in place is a generally bad idea.
If you don't want to set this variable on a permanent/semi-permanent basis (and, again - you probably shouldn't), you could write a shell script that sets the minimum needed environment variables and then launches Beyond Compare with your args already set in the script. Such a script would look something like this:
#!/bin/sh
crossover="/Applications/CrossOver.app" # Where you keep CrossOver
bottle="Your Bottle Name Here"
open "$crossover"
export DISPLAY=:`defaults read com.codeweavers.CrossOver Display`
export DYLD_FALLBACK_LIBRARY_PATH="$crossover/Contents/SharedSupport/X11/lib:$HOME/lib:/lib:/usr/lib:/usr/X11/lib"
export FONT_ENCODINGS_DIRECTORY="$crossover/Contents/SharedSupport/X11/lib/X11/fonts/encodings/encodings.dir"
export FONTCONFIG_PATH="$crossover/Contents/SharedSupport/X11/etc/fonts"
export FONTCONFIG_ROOT="$crossover/Contents/SharedSupport/X11"
export VERSIONER_PERL_PREFER_32_BIT=yes
export CX_BOTTLE="$bottle"
export PATH="$crossover/Contents/SharedSupport/CrossOver/bin:$PATH"
# Uncomment this if you need to be in the bottle's C: drive directory
#cd "$HOME/Library/Application Support/CrossOver/Bottles/$bottle/drive_c"
wine YourProgramHere YourArgumentsHere