Como os métodos protegidos de java.lang.Object estão protegidos de subclasses?

A palavra-chaveprotected concede acesso a classes no mesmo pacote e subclasses (http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html)

Agora, toda classe temjava.lang.Object como superclasse (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html)

Por isso, concluo que toda classe pode acessarjava.lang.Objectmétodos, mesmo que sejamprotected.

Veja o seguinte exemplo:

public class Testclass {
  public Object getOne() throws CloneNotSupportedException {
    return this.clone();
  }
  public Object getTwo() throws CloneNotSupportedException {
    return ((Object) this).clone();
  }
}

EnquantogetOne() compila bem,getTwo() dá

Testclass.java:6: clone() has protected access in java.lang.Object
        return ((Object) this).clone();

Eu também não entendo porquegetTwo() não compila nem qual a diferença (em relação ao acesso dejava.lang.Objects membros) comgetOne().