Are blocks a OK way to model a theme?
Blocks are an important part in Drupal, but you don't model a theme with them.
Blocks are implemented from modules, using hook_block_info() and hook_block_view() (together other hooks); what themes implement are regions where those blocks are rendered. A theme cannot decide not to implement regions, since there are some regions Drupal requires from themes.

Eventually, a theme can alter how a block is rendered, but themes are not modelled around blocks.