Существует разница между определением класса и переменной. Когда вы помещаете класс в пространство имен, вы определяете новый тип. В своем объявлении вы не определяете новый тип. Вместо этого вы используете существующий тип (int) для определения переменной. Эквивалент с использованием классов будет что-то вроде
namespace Foo{
class Bar{} // type definition
Bar the_bar; // variable definition
}
Второе определение также недопустимо, поэтому классы и int действительно ведут себя одинаково: в C # нет глобальных переменных.