1) После закрывающей фигурной скобки точка с запятой ставится только в одном случае - если это литерал объекта. В остальных случаях точка с запятой не ставится. Не ставится после функции, не ставится после составного оператора. Часто эта неуместная точка с запятой прощается, но не всегда, напр.
if( условие )
{
// операторы
} // если после этой скобки поставить точку с запятой - ошибка!
else
{
// операторы
}
2) никогда не использую потому что для меня это сложно - аргумент против чего угодно - рекурсии, замыканий, цикла do...while, ...
Конструкция
a[x*5+y].b = flag ? 1 : 2;
гораздо легче читается чем
if( flag ) a[x*5+y].b = 1; else a[x*5+y].b = 2;
Лично я никогда не напишу конструкцию типа
return (x > 100) ? true : false;
или
return (numberToCheck > lowerBound) ? true : false;
подражая некоторым "профессионалам":
http://msdn.microsoft.com/ru-ru/magazine/cc163419.aspx