Спецификация языка сама по себе не диктует это (я только что посмотрел и не могу найти на нее ссылку), но обычно она обеспечивается инструментами. Это значительно облегчает управление зависимостями инструментов, поскольку оно знает, где искать класс B, если на класс A есть ссылка на него. Соглашение распространяется на структуру каталогов, повторяющую структуру пакета, но опять же, это всего лишь соглашение.