Основная суть такая. Используем STI если набор аттрибутов у каждого объекта примерно одинаков, но объекты имеют разное поведение. В других случаях ваш второй вариант.
Говоря про последствия, вы сильно недооцениваете “авось пронесет”. Даже если алкашу со стажем сказать — бросай, а то завтра в 8 утра сдохнешь, то он еще до 7.30 думать будет. И не факт что бросит.
Или github.com/hzamani/acts_as_relation (но там багов хватает)
Какого года статья? 2008-2009?
Я такого не говорил :)