I would keep it simple and only do the checks to make sure the module is on the current page and the user has permission to view the page.
Nothing is needed in the feature to allow anonymous surveys other than to put in on page that is visible to all users which includes anonymous users.
Nothing is needed to support surveys that require being authenticated than to put it on a page which requires it.
Users with edit permission on the page should be able to edit the survey.
Best,
Joe