Откройте ссылку, например, на логотип - static2.t-ru.org/logo/logo.gif
И посмотрите что там - заглушка от провайдера или другая какая ошибка.
Ну или "Инструменты разработчика".
Если более никаких нюансов в договоре нет - прав фрилансер, имхо.
Иначе так по ссылкам на внешние ресурсы (счетчики и тд) можно далеко "вглубь" уйти.
С другой стороны, если эти страницы можно легко спарсить скриптом - то не стоит раздувать скандал.
Во втором случае переменные timeout и counter создаются при каждом вызове функции updateCounter() и уничтожаются по ее завершению.
В первом случае - они глобальные (относительно функции) и создаются один раз.
А оно и не должно схлопываться.
Схлопываются margin у идущих друг за другом (друг под другом) элементов, а не у вложенных.
UPD. Не нашел никаких margin у div.
Может глупость предположу...
В конце функции стоит "return 0;", внутри функции ничего "внешнего" не модифицируется.
Следовательно, можно безболезненно все выкинуть, оставив только "return 0;", так как что бы осмысленного внутри не было - результат выполнения функции - ноль.
Попробуйте возвращать не ноль, а результат вычислений или модифицировать данные по указателю data.