The description of that function says about the $account param: "Leave it to NULL to check for the current user"
I found that when implementing the hook_commerce_coupon_access_OP hook, the account does not get the current user.
After adding to commerce_coupon_access
<?php
if ($account == NULL) {
global $user;
$account = $user;
}
<?
- things work as they should.

I think this is not needed when working with the default access permissions,
since user_access will load the current user,
but when implementing a hook the user ($account) object arrived empty from commerce_coupon_access.

Comments

asak created an issue.