Hi Brad,
We could separate your demand into 3 parts:
1. You don't want to invitees(your contacts) create other irrelevant event registration record because they can submit any information successfully from Register Form in Event page.
2. You don't want to create duplicate event registration records from same contact.
3. You are worried about malicious code for loop registration.
So let us talk about solution for each situation.
Previous 2 requirements can be achieved without an event page to contacts/registrants.
1. Create a marketing email with a link to Subscription center. As we know, this type of marketing page is special: a string of ID has included in its link URL, when contact(or invitee in your scenario) enters the page, all fields were populated, because embedded code in page will take that ID string to query match record in Marketing Contact DB, and contact can only modify or update his/her own information from subscription form due to this feature. As official doc said: it only works for known contacts, which prevents spam records creation as per my understanding.
So we send contacts/invitees an email with confirmation for event registration, obviously the "Modified On" field will change when contact submitted his/her information, then the workflow that create a event registration will be triggered, and you can get contact name from Dynamic Value.
2. There is a feature called Alternate Keys, you can find it easily in Customization > Components > Entity > Key, it works as a primary key for each record. In our scenario, we add Contact and Event field as key for event registration entity, which means each event registration has unique contact and event. It will restrict duplicate record instead of only notification without prevention by duplicate detection rules.
3. Since we've done event registration without event page, it's not required.
Hope those would help.
Regards,
Clofly