Just had to 'reblog' this, as of all the caching quirks in Magento, I have binned the most time on account of this one.
When you’re creating custom Magento models, it’s common to to add and remove fields to and from a database table during development before finalizing a set of columns for the setup resource/migration file. One thing to keep in mind while you’re doing this is that Magento will cache the list of table columns each model knows about, which means a cache clearing will be needed after adding a column.