Of course it is, that’s literally contract law. You’re agreeing a contract to licence them access with specific terms.
The reason they invented the standard licences is to avoid this cost and effort. Do you really want to write a 200 page legal contract for every user for software you’re giving away for free?
Is that the implication? I thought that the legal contract you mentioned was a standard document, basically the same for everyone that was licensed. But I am not s lawyer, and I don't pretend to be one.
It would be neat to have this licese codified (Like we have MIT, GPL, etc), with the proper incentives to "ask for open source access, if I lile you, you might get it". And, of course, a "contract" that gave licensees the open source benefits.
One of the open source benefits is the ability to distribute the software to others under the open source license. So if you gave your friends an open source license (which you can do) they could then license the software to anyone else they want to under the same license (As that is part of the definition of open source). If you want to restrict them from doing this, you could make your own custom license that restricts this (but it would not be open source).
The reason they invented the standard licences is to avoid this cost and effort. Do you really want to write a 200 page legal contract for every user for software you’re giving away for free?