Как реализовать раздельную область видимости а 1 сишнике?
Возможно конечно. Например, не делать переменную глобальной, а объявить ее в main и передавать указатели в две другие функции.
область видимости в общем случае рассчитывается очень просто: 
в N строчке видно всё, что написано в строчках от 0 до N - 1 ( с учетом уровней вложенности фигурных скобок )