When ICU is built on a UNIX platform with --enable-shared and --enable static, the static libraries have an "s" in front of their names (-lsicuuc vs. -licuuc). In a UNIX environment, it is more customary to have the libwhatever.a file have the same name as the libwhatever.so file has so that the -static flag can be passed to the linker to create a statically linked executable. As it is now, users have to know that they have to change the library names that they link against (in addition to adding -static) in order to get a fully static executable. I might suggest that in a UNIX environment, if --enable-static is given, static libraries with names that match the shared libraries be created, perhaps as symbolic links (libicuuc.a -> libsicuuc.a) so that -lsicuuc will always give the static library, and -licuuc will give the static library if -static is passed to the linker and the shared library otherwise. It appears the U_STATIC_IMPLEMENTATION symbol mentioned in the configure --help output is actually required only on Windows to deal with DLL issues.
This suggestion originates from a debian bug report, http://bugs.debian.org/469454, which also references this ticket. As debian maintainer for the ICU packages, I have assured the user that I will not deviate from upstream on this issue since doing so would enable debian ICU users to inadvertently create software that builds properly on debian but not on other UNIX distributions.