It was not a good idea IMO that the usercode for the extranet was called GUEST. It only makes confusion with Guest pages bigger.
Guest page are anonymous web requests that are executed to efficy.dll/guest. No logon and session are required. Efficy uses a user/pwd combination stored in the registry to logon and in this context API calls are executed. It can be the guest user, but it can also be the admin user. But the best and safest approach is a dedicated user with only the rights required for the guest pages.
When the mailingcode parameter is present in the /guest request, you can use macro's like <%GetField()%>
Helpdesk extranet sessions behave more like normal Efficy sessions. You have to logon to make a session, but instead of logon with user, you logon with the credentials of a contact.
So that is why you need contact licenses. You can use any request /edit, /dialog, /consult
Changes will be seen in the application as being executed by user GUEST, you will not see the contact key anywhere.