Нет, такая программа правильно работать не будет. Робот, выполняющий функцию fill_column, красит столбцы снизу вверх и обратно не возвращается.
Первый вызов fill_column покрасит левый столбец, а остальные вызовы — только верхние клетки всех столбцов (то есть верхний ряд прямоугольника).