El problema es que estas usando 2 campos como clave primaria, id y correo, cuando haces eso, te toma los dos campos para generar la clave primaria, y el campo id es autonumerico, lo que significa que cada vez que insertas un registro, te genera un id numerico diferente, y al combinarlo con el correo, te genera 2 claves diferentes, y por lo tanto te deja hace la insercion.
Explicado con ejemplo:
id, correo
1,
micorreo@micorreo.com3,
micorreo@micorreo.com1,
micorreo@micorreo.comentonces si no te dejaria, ya que el conjunto de id + correo es el mismo.
Si lo que deseas es que al insertar un registro en la base de datos no te permita insertar el mismo correo dos veces, tienes que hacerlo manual, o sea, hacer un select (consulta) para buscar si existe el correo:
SELECT correo FROM clientes WHERE correo = 'micorreo@micorreo.com';
Si la consulta te regresa cero filas, entonces el correo no existe y puedes insertarlo.
Si te regresa 1 fila, entonces el correo si existe, y mostrarias un mensaje de que no puedes hacer la insercion porque el correo ya existe.
Espero haberte ayudado.
Saludos