The feature flags and the names of the camera APIs aren't actually related, even though they look the same.
The feature "android.hardware.camera" (PackageManager.FEATURE_CAMERA) means that the device has a back-facing camera. That's all; any app that wants to avoid being installed on a device with no back-facing camera needs to list that one.
It's not related to the Java android.hardware.Camera
class.
The feature "android.hardware.camera.level.full" (PackageManager.FEATURE_CAMERA_LEVEL_FULL) says that at least one camera on the device supports the FULL hardware level when used via the android.hardware.camera2
API package.
So a device with a back-facing camera always lists "android.hardware.camera". If it's got a good camera, it'll also list "android.hardware.camera.level.full".
Since the sample apps for camera2 are meant to run on any quality of camera, they only require there to be a camera device, not that it has any particular level of capability.
I've seen some developers try to require a feature like "android.hardware.camera2"; there's no such feature defined in the Android SDK, so trying to require it means your app can't be installed on any device. The camera2 API is always available starting from Android 5.0 (Lollipop); it's just a question of what hardware level each camera device supports (LEGACY, LIMITED, FULL, or LEVEL_3).