Supondo que as duas classes abaixo sejam criadas em dois arquivos diferentes:
// F1.java
package f1;
public class F1{}
// F2.java
package f2;
public class F2 extends f1.F1{}
Posso afirmar com certeza que F2.java só vai compilar se F1.class estiver em um diretório chamado f1?
Isto é, a organização de packages em diretórios é assegurada independente do compilador utilizado?
Sem sombra de dúvidas, ele vai procurar pela extends citada e se não existir, não irá nem compilar, irá estourar um erro do tipo, "ClassNotFoundException".