Hola que tal, bueno el ODBCConnection como tu comentas es generico, te puedes conectar a cualquier BD.
El SQLConnection es para SQL.
Un problema que yo encontre con el ODBC cuando se conecta a una tabla en SQL si son muchos registros me marcaba tiempo de espera agotado, por lo que cambiamos mejor a SQLConnection y se soluciono.
Con respecto al Factory Method, estoy aun en pañales con esto, pero si manejas capas con que tengas una capa dedicada a la conexion no tendrias problemas.
Con el costo del SQLConnection, ese si no lo se