Looks like this was resolved in Xcode 4.0.2 since I can't reproduce it anymore.
On two separate iOS apps compiled with LLVM 2.0, user's whose iOS device could only run arm6 binaries crash at launch. Recompiling with LLVM 1.7 in Xcode 3.2.6 produces a fat binary that works for both armv6 & armv7 based devices.
It's certainly possible that there is some build setting I tweaked to expose a bug in LLVM 2.0. If that is true, I haven't found which one yet.
I filed a bug with Apple on this of course, # 9141747. If you are seeing the same issue, please dupe my bug.
Here are some build settings that might be relevant:
|Architectures||Standard (armv6 armv7)|
|Build Active Architectures Only||No|
|C/C++ Compiler Version||LLVM 2.0 or|
|iOS Deployment Target||iOS 4.0 or|
|C Language Dialect||C99 [-std=c99]|