This appears to be a bug in Android. The camera activity launch doesn't fail due to the issue you linked to but because of denial from the AppOpsManager service:
05-04 14:16:51.789   620  2669 W ActivityTaskManager: Appop Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x10000000 cmp=com.android.camera2/com.android.camera.CaptureActivity } from null (pid=4079, uid=2000) requires android:camera
This can be verified via
adb shell appops get com.android.shell
where com.android.shell is the package name supplied by the command-line utilities such as am i.e. the Android Shell package. This yields
Uid mode: COARSE_LOCATION: foreground
LEGACY_STORAGE: ignore
CAMERA: allow; rejectTime=+4m37s345ms ago
which shows how long back the rejection for the CAMERA op was incurred by Shell package.
But this policy of rejection is incorrect since com.android.shell already has the CAMERA permission which can be verified via
adb shell dumpsys package com.android.shell|grep 'android.permission.CAMERA'
  android.permission.CAMERA
    android.permission.CAMERA: granted=true, flags=[ SYSTEM_FIXED|GRANTED_BY_DEFAULT]
One alternative (that might not work for all) is to start this intent from a root shell (after adb root/su) which works.
05-04 14:17:23.610   502  2518 I CameraService: CameraService::connect call (PID -1 "com.android.camera2", camera ID 0) for HAL version default and Camera API version 2