Зависит от контекста производственного программного обеспечения.
Если вы пишете простой слой доступа к данным для инструмента управления таблицами, где пользователь будет выбирать таблицы и просматривать результаты в сетке, то, похоже, * SELECT ** - это хорошо.
Другими словами, если вы решите обрабатывать «выбор полей» каким-либо другим способом (например, в автоматических или пользовательских фильтрах после получения набора результатов), тогда это будет просто замечательно.
Если, с другой стороны,мы говорим о каком-то корпоративном программном обеспечении с бизнес-правилами, определенной схемой и т. д. ... тогда я согласен, что * SELECT ** - плохая идея.
РЕДАКТИРОВАТЬ: Да, и когда исходная таблицахранимая процедура для триггера или представления, "* SELECT **" должна подойти, потому что вы управляете набором результатов с помощью других средств (определение представления или набор результатов сохраненного процесса).