Bom dia Glauco, tudo bom?
Ambas as justificativas são verdadeiras, tanto a sua quanto a do instrutor. O problema que o instrutor quis lidar é o seguinte:
A classe B está no pacote a.b. Nas classes A e C, o código tenta acessar a classe B do digitando somente parte do pacote (b.B), quando deveria incluir o caminho completo (a.b.B).
Importar o conteúdo do pacote a (import a.b;) também não funcionaria, pelo mesmo motivo: você precisa acessar a classe diretamente (import a.b.B; e então B variavel;) OU utilizar o pacote completo desde a raiz (a.b.B variavel;).
Como você disse, nada disso funciona se a classe B não for pública. Porém só dá erro o de compilação de classe pública a seguir CASO o problema anterior seja resolvido. 
error: B is not public in a.b; cannot be accessed from outside package
Dê uma olhada na compilação a seguir:
## sem pacote nenhum
>> javac a/A.java 
./a/A.java:5: error: cannot find symbol
    B attr;
    ^
  symbol:   class B
  location: class A
1 error
## com pacote parcial
>> javac a/A.java 
./a/A.java:5: error: package b does not exist
    b.B attr;
       ^
1 error
## com pacote completo
>> javac a/A.java 
./a/A.java:5: error: B is not public in a.b; cannot be accessed from outside package
    a.b.B attr;
             ^
1 error
Reparou que o compilador trava antes de chegar a conferir se a classe é pública? Isso ocorre pois ele não consegue nem identificar onde está a classe B, pios existe um erro de pacote.
Deu pra entender? Espero que sim!
Qualquer dúvida, não hesite em perguntar!
Bom dia e bons estudos!