Edit: OK, I looked at the docs, and they sure do make a broken symlink there. I still think it's worth a try to create a non-broken link, maybe the docs are wrong. I would expect they would put a little note there, that yes, you really do want to create a broken symlink (if so, why not a regular file?), but then again its kernel docs and those aren't the most friendly.
I also thought you were OP for some reason, sorry.
Edit2: If you look at the file listing later in the docs, you can see this:
./configs/c.1/ncm.usb0 -> ../../../../usb_gadget/g1/functions/ncm.usb0
Which does look like a real non-broken symlink, so I maintain the docs are wrong and you're not supposed to make a broken symlink.
Original comment, silightly edited:
You misunderstand. I suspect OP cannot create the symlink, because it would be a broken symlink, not because the symlink is relative. Maybe you cannot create broken symlinks in the sysfs for some reason.
I was just trying to explain that a relative symlink is relative to the directory in which it resides. The target to the symlink should point to ../../functions/uvc.usb0
if you want it to point to something that exists. The ln command in OP's listing would result in a broken symlink, since the specified path is not relative to the c.1 directory. It is relative to the working directory, but that's wrong, that's not what ln expects you to put there.
Maybe it needs to be a correct symlink, maybe that will solve the problem.