В определении постоянного пула, согласно спецификации, почему требуется иметь CONSTANT_String, CONSTANT_Integer,... как отдельный и уникальный тег?
почему эти теги нельзя рассматривать как тег CONSTANT_Class, как и все другие классы?
Только потому, что это системные классы? но если это так, есть другие системные классы, кроме упомянутых.
читайте здесь: https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4