There are still unaligned memory accesses in sam.c. Eg line 729:

    cigar[i] = strtol(q, &q, 10)<<BAM_CIGAR_SHIFT;

I'll experiment some more.