Комментировать

А что вы имеете в виду под

А что вы имеете в виду под "одноцветными" областями и их массивом, это в точности одинаковый цвет?

OpenCL, как я понимаю, рекурсивные функции пока не поддерживает. Только CUDA  и только на Fermi.
Динамическое выделение можно сделать "псевдо" - отдайте всю память ядру, пусть сама и выделяет. Если хочется.
Вызывать функции можно, опять же, на Fermi (и только CUDA)