Oui, car 'a n'est pas le type de self, mais d'un paramètre. Il ne s'agit pas d'une méthode binaire. Un exemple sans intérêt, mais qui montre que tout se passe bien:
class ['a] cellule x =
  object (self)
    inherit ['a] cell x
    method consulte = self#set (self#get)
  end;;
On vérifie que cellule est sous-type de cell (mais pas l'inverse).
fun x -> (x : 'a cellule :> 'a cell);;
fun x -> (x : 'a cell :> 'a cellule);;