Цитата(baralgin @ Apr 23 2010, 13:17)

Ну так extern тоже даст полный доступ(даже ещё полнее). В этом и вопрос что лучше

.
Даст. А разве не это надо? Как еще создать глобальный объект? А если вам надо объект спрятать внутри единицы трансляции, то статик в сочетании с функцией, возвращающей указатель на объект и имеющей глобальную область видимости, приведет ровно к такому же результату. Только этот вариант более запутанный. Зачем это?
Если хотите реально закрыть какие-то данные и/или предоставить ограниченный интерфейс, то тут придумывать ничего не надо, надо использовать классы, представление помещать в закрытую (private) часть, а интерфейс - в открытую (public).
Цитата(baralgin @ Apr 23 2010, 13:17)

Этот вопрос из серии "можно ли пользоваться операторм безусловного перехода или нет". extern не из той же серии?
Нет, не из этой. extern - совершенно необходимое средство для связывания имен, без него никуда. А goto - это средство для решения частного случая (выход из вложенных циклов), больше в нем нигде необходимости не возникает.
«Отыщи всему начало, и ты многое поймёшь» К. Прутков