this was just a matter of configuring foreign keys. I still don't understand the intention of this default behavior (adding a set of select columns for every foreign with appended "1")..
but declaring foreign keys fixes it.
via fluent API:
modelBuilder.Entity<FirmPerson>()
.HasRequired(f => f.Firm)
.WithMany(p => p.FirmPerson)
.HasForeignKey(f => f.FirmID);
or via attribute:
public int FirmID { get; set; }
[ForeignKey("FirmID")]
public virtual Firm Foo { get; set; }