I would argue for the default key being (r.CHROM, r.POS) because
-  adding REF and ALT to the key breaks the "nrecs == 5" assert in test_walk(..) -  (it makes nrecs == 8)
-  I personally think its more intuitive for all the records at a given CHROM/POS to be emitted together  at which point the user can decide if they care about possible multiple alleles at a site. Generally, it seems multi-allelic sites are still not typically considered in the variant-calling world - for example, VarScan2 and GATK UnifiedGenotyper only emit one allele per site by default. 
-  The definitions of __cmp__ and __eq__  in model._Record appear to be contradictory on this issue (__cmp__ uses only CHROM and POS, while __eq__ also adds ALT and REF).