Я бы предположил, что ни в коем случае класс A не требуется загружать, даже если в B есть его экземпляр, поскольку вы никогда не создаете экземпляр экземпляра B.
JVM очень ленив, когда загружает классы. он загружает их либо при создании экземпляра объекта этого класса (в первый раз), когда вы явно загружаете класс с помощью Class.forName (), либо когда вы ссылаетесь на класс таким способом, который требует от него информации (попробуйте получить доступ к статический член A из статического инициализатора B и видеть, что A будет загружен.