Buenas,
pues ambas directivas crean capas pero en algunas propiedades requieren tratamientos distintos.
<layer> es una directiva que pertenece a Netscape y que no es soportada por otros navegadores. Se usaba para versiones anteriores de Netscape aunque está llamada a desaparecer (de hecho, "creo" que las últimas versiones de Netscape yá no la soportan. Si estoy equivocada favor de corregirme, gracias)
<DIV> es una directiva que usada con CSS le dan al tag el sentido de una capa al igual que <LAYER>. Si bien div desde html se usa para alinear párrafos, usandolo con CSS se convierte en una "capa de css" y es soportada por IExplorer y por las últimas versiones de Netscape.
Tan sólo añadir que para el tema capas CSS también se puede usar el tag <SPAN> que trabaja igual que <DIV> con la diferencia de que este último genera un salto de línea tras cerrarse, y en cambio el tag <SPAN> no lo hace. Esto es interesante cuando queremos usar una capa de posición relativa o fija que permanezca dentro del flujo normal de un párrafo.
Seguramente se pueda agregar algo más, pero o no lo sé, o no se me ocurre
Saludos