На мой взгляд, если зарплата одинакова, то это вопрос только личных предпочтений. Я два года проработал РНР-разработчиком в крупной компании, лидере на своём рынке. Не знаю как где, но многие проблемы компаний, хотя не всегда, но обходимы. У нас был легаси-код 10-летней давности, но рефакторинг по мере возможности проводился. Было много правил и устоявшихся вещей, но они служили предохранителем от глупостей - когда надо было какое-то правило обойти для реального решения задачи, это всегда можно было сделать. Было много старых разработок, но было место пробам и новых фреймворков, и инструментов/библиотек, и подхода к разработке. Очень много проводилось для обмена опытом и обучения сотрудников.
Сейчас я ушёл оттуда во фриланс. Почему? Ну не могу я, когда стоят над душой. Хочу, чтобы дали задачу любой сложности, и я её делал. Не то чтобы я супер-пупер-мегакодер, но со сложными задачами сталкивался не раз, и если заказчик сам знает, чего хочет, то решение всегда можно найти. Кроме того, есть форумы, сообщества, хабр и тостер, наконец.
С другой стороны, если бы я находился в начале своего пути, и попадал под Ваше определение "программист, только что ушедший из крошечной фирмы и у вас нету опыта серьезной промышленной разработки", то я выбрал бы большую фирму, что в своё время и сделал. Потому что вначале программист работает на опыт, а потом - куда душа лежит. У меня не к большим фирмам.:)