From my evaluation and an internal evaluation done by 1000g:
On specificity (well, bwa is not far off):
On single-end speed:
On paired-end speed:
On paired-end sensitivity, I guess:
On single-end sensitivity, I guess:
On memory (">" means better or less memory):
People choose bowtie and bwa more often probably because both natively support the SAM output, while soap2 not. Bowtie is often seen in RNA-seq/ChIP-seq because it is extremely fast for single-end reads and because the whole tophat/cufflink package is very useful. BWA is often seen for SNP/indel calling because it does gapped alignment and produces fewer false alignment. BWA/stampy/novoalign estimate mapping quality which is at times useful. Bowtie/soap2 do not, which is why they are faster.
When you really come to very rare events (e.g. somatic mutations, structural variations, RNA editing and rare splicing form), probably you should consider novoalign/stampy or even trying two aligners at the same time.