Implementing custom entity forms
You're essentially correct I think. You can write a hard-coded Entity or make something more flexible supporting bundles (hard coded bundles, or say user-defined bundles like the Profile2 module) .... it can get as complicated as you want! :D

Have you seen this sandbox released a few days ago showing the mimimum for 1 hardcoded entity using Drupal core API and then an Entity supporting bundles via the EntityAPI.

https://drupal.org/sandbox/AlexanderAllen/2062531


  This module aims to provide a developer friendly, ready to use,
  barebones implementation of a custom Entity.
  
  The master branch provides a single, hardcoded entity (bundles are not
  supported), lacks entity revisioning support, and the only CRUD
  operation supported is save(). At a total of 16 functions, 4 files,
  one class and one method - the mater branch is recommended for
  understanding what is the bare minimum needed to create a custom
  Entity by code - using the Drupal core Entity API only.
  
  The bundles branch adds bundle and automatic CRUD support with the
  help of the Entity API contributed module.
  
  This module was inspired by the Profile2 and Model modules. This
  module is simpler than Model in that it uses the default UI and Entity
  controllers. If you're already comfortable with Entities, you should
  refer to the Model module instead for help with creating custom UI and
  Entity controllers.