En realidad deberías usar mejor la función empty() para esa validación de tu variable de sesión ..
Por lo demás .. el sistema como mencionas usando sesiones es seguro en general .. Como siempre .. si no usas SSL por ejemplo para encriptar los datos que viajan entre el cliente y el servidor (tus datos de login) .. podrán ser "capturados" por el camino .. Pero eso no es problema de tu código en sí o de PHP sino de la infraestructura de tu servidor HTTP y soporte de SSL (y que lo uses ...).
Cita: PD: Por si os interesa, la contraseña está codificada en md5, esto aumenta la seguridad no?
Pero .. como haces esa codificación o donde la usas? .. Si lo usas para almacenar tu contraseña en tu BBDD .. es "seguro" en el punto de que nadie que entre a tu BBDD podrá ver esa contraseña (pero si el resto de datos que en tus tablas manejes ...).
Un saludo,