Лично я предпочитаю описывать вне классов тела методов. Так как при прочтении класса сразу видно что в нём есть. А реализацию можно посмотреть ниже. Но тут вопрос вкуса.
Но, все же, если говорить о том, как все же в кладывать одно пространство имён в другое - я бы выбрал свой вариант, так как это в некотором смысле стандартизирует код: независимо от того в разных файлах или одном описываются пространства имён их стиль вкладывания одного в другое будет единым.
Да, но вот копаться среди методов снизу - не лучшая затея. Особенно, если классов несколько и присутствуют методы класса Program. Именно поэтому ввели сокращённый синтаксис модулей, а в C# о таком делении и не слышали. Я считаю, надо сделать как с классами. Можно и так и так.
begin - это открывающая скобка. Пусть операторная, но все равно - скобка. Начало блока. Вовсе не обязательно исполняемого. В синтаксисе языка паскаль блок - любая последовательность операторов, в том числе, пустая, помещенная в операторные скобки.
Но еще надо как-то файл, содержащий namespace, подключать к проекту.
Здесь видимо подходит синтаксис, сделанный @ibond - через {$includenamespace
Хотя это сразу требует, чтобы в файле был ровно один namespace.
Будет требоваться и указывать в uses и подключать файл. Если конечно не допустить, что имя namespace совпадает с именем файла. Но тогда непонятно, как в нескольких файлах помещать в одно пространство имен.