Ola Hugo,
Eu trabalho sempre com AssemblyVersion estático, mas com FileVersion incremental. Isto parece-me resolver também todas as questões que referes.
Significa isto que o assemblyversion é alterado de iteração para iteração (ou release para release, como preferires), mas as builds diárias, continuas, etc, são reflectidas no fileversion. Também uso isto para patchs, ou seja, se não tenho uma release completa, liberto um patch com fileversion, de forma a manter a triagem mas garantindo que nada é quebrado.
Em relação ao source control, por norma nunca coloco o sistema de builds, integração continua ou outro, a fazer checkins no repositorio, exceptuando o output da build em folder proprio.
Que tal?
um abraço