puede deberse
a que no puede haber más de un body, aunque la mayoría de los navegadores lo ignore (o quizás no lo ignoren, pero nunca he tratado de probar si esto afecta al DOM o no¿?¿?) al parecer según tu experiencia chrome no, y nada tiene que ver si es compatible con ajax, porque al ser el navegador más moderno (nuevo por así decirlo) debe de estar a la altura (y lo está) de las exigencias actuales de la web.
pero utilizar AJAX para cargar los segmentos de un
layout tiene su precio:
más peticiones http, lo usual
y recomendable es delegar ese proceso al servidor, siendo con SSI (server side include) o
algún script del lado del servidor, como PHP, ASP, JSP u otros, en donde dicho proceso se realice antes de enviar la página al cliente y así ahorrando ancho de banda.
ejemplo de php: (para que funcione deben de renombrarse las exenciones de los archivos a *.php)
pero, la idea de segmentar código implica separar esas pequeñas pero recurrentes partes de forma simple, es decir, no hay necesidad de enmarcarlas en una estructura
html con body tradicional (
layout), porque se supone que son segmentos que se acoplarán al
layout final de la web, así que no debes de incluirlos, así estos sean ignorados o no por los demás navegadores.