Isso é perfeitamente normal para ambas as suas perguntas.
O circuito de detecção de frequência de memória provavelmente não será completamente preciso, pois não há motivo para isso, você pode comprar contadores de freqüência que podem ser altamente precisos, mas altos níveis de precisão não são nem mesmo vagamente necessários para um computador. Tudo o que você realmente precisa saber é que a frequência está "no estádio" do que você supostamente está recebendo. Obter uma medição altamente precisa é caro, pois está gerando um relógio altamente preciso em primeiro lugar.
A maioria dos componentes de computador pode lidar com um leve desvio do relógio e sua diferença de 100kHz (0,1MHz) é mais provável de ser medida do que qualquer outra coisa, o desvio real provavelmente é bastante insignificante, especialmente porque todos os componentes que usam esse relógio será sincronizado e simultaneamente à deriva ao mesmo tempo, por isso não notará uma mudança tão pequena no clock.
Por que você vê 400MHz quando tem RAM "800MHz", isso acontece porque a RAM é DDR RAM. DDR RAM, também conhecido como Double Data Rate RAM, transfere duas partes de dados por clock, portanto, enquanto a taxa de clock real é de 400MHz, a taxa de clock "efetiva" é de 800MHz. Chamá-lo 800MHz RAM é um ligeiro nome errado, pois não é a freqüência real da RAM, mas é bastante comum nos dias de hoje.
Para esclarecer DanMans, comente que a memória DDR2 é um pouco mais interessante, já que o clock interno de um módulo DDR2 400MHz é realmente metade do clock externo fornecido pelo sistema, de forma que ele funcione efetivamente a 200MHz, o que significa que os dados que são enviados são efetivamente "quad-pumped" dos chips de memória e sincronizados ao clock externo de 400MHz para oferecer uma taxa de dados efetiva de 800MHz . (você pode ver mais na página da Wikipédia DDR2 SDRAM: Specification_standards .