ИМХО classFactory нужны не всегда. Особливо для элементарных объектов. И зачем мне classFactory как объект?
что мне мешает сделать так
class ISomeIface
{
....
}
class SomeObject1 : ISomeIface
{
static ISomeIface* Create ( some parameters ) { ... };
}
зачем мне
class SomeFactory
{
ISomeIface* CreateObject1 ....
...
ISomeIface* CreateObjectN ....
}
Только быстрее запутаюсь. Слишком большое абстрагирование - пагубно. Есть принцип - "разделяй и влавствуй"

Часть сущностей действительно можно реализовать прокси-объектом. А часть объектов использовать как чисто функциональные - с ссылками или смарт-указателями на внешние данные - чтобы просто описать набор операций на связки данных - их то зачем через classFactory создавать?

P.S. Насчет брейков. Частенько пользуюсь таким, чтобы не запутаться в if-ах и не раздувать код в ширину:
int rc= err;
for(;;)
{
rc = SomeAction();
if ( Ok != rc )
break;
rc = SomeAction2();
if ( Ok != rc )
break;
....
rc = SomeAction_N();
break;
}
if ( Ok != rc )
{ .... /// bla-bla }
/// etc.
... если код состоит из достаточно примитивных действий, чтобы не тянуть за ними абстракции.
Абстрагировать надо тоже разумно... а то тот же С++ кучу вариантов для извращений позволяет

Багов у меня, обычно, бывает мало. Да и юнит-тесты я обычно сам делаю.