Si es cuestión de defender una opción, yo sigo optando por las excepciones. No porque no sea perfectamente valida FileExists, sino porque esta solo comprueba que el archivo existe pero no que sea una imagen valida. Si resulta que el archivo en cuestión no es una imagen o esta corrupto no enfrentaríamos a una excepción no controlada. Así que de usar FileExists también seria necesario usar try ... except y por eso de economizar código mejor usar excepciones directamente y nos ahorramos un paso.
¿que te parece ahora
dec?