I don't really see it as a huge problem. It works and it's DRY. You can render public templates from the admin side of things by prefacing the template names with 'public:', but you'd have to duplicate your controller. If you're really concerned about separating them, you could probably split it into a controller plugin and just call that from both the admin and public controller.