Se eu tenho uma CPU com dois núcleos, cada núcleo possui seu próprio cache L1, é possível que o Core1 e o Core2 armazenem em cache a mesma parte da memória ao mesmo tempo?
Sim. O desempenho seria terrível se não fosse esse o caso. Considere dois threads executando o mesmo código. Você deseja esse código nos dois caches L1.
Se for possível, qual será o valor da memória principal se o Core1 e o Core2 tiverem editado seu valor no cache?
O valor antigo estará na memória principal, o que não importará, pois nenhuma CPU o lerá. Antes de ejetar um valor modificado do cache, ele deve ser gravado na memória. Normalmente, alguma variante do protocolo MESI é usada. Na implementação tradicional do MESI, se um valor for modificado em um cache, ele não poderá estar presente em nenhum outro cache no mesmo nível.