On SDK 5.9.6 (I know this is a little stale) I have noticed that [[[[ZoomSDK sharedSDK] getMeetingService] getRecordController] canStartRecording:NO] returns true even when a user cannot start a recording (pressing the record button manually gives me the message that I need to ask the host to grant record priveleges)
I just tested this on v5.9.6, and when I start a meeting from the client and then join from the SDK canStartRecording returns ZoomSDKError_NoPermission. Just to be sure though, you mentioned that the method returns true. The return value of this method is ZoomSDKError, so is it possible you misinterpreted the value?