One thing that really worked with this one is that I actually am not doing any match checking through data structures, but instead, through distance checks. I did this because the circle structure was just confusing to work with as an array, of course. Which lead to a problem you described, unfortunately. No planning allowed, heh. I call it a "lack of collapsing" but there is no advanced strategy here, due to no way to know what is coming in. Couldn't figure it out either, without relying on an array to collapse or move remaining circles around.
It's interesting to think about. This is a key element to match-3 or any puzzle game design, but I've never read anyone really talk about it. I have to admit, I've discarded entire prototypes because of a lack of this collapsing or planning ahead. I stuck with this one because of the distance based matching, I felt it was unique enough. And the movement. It needs something else though. I think if I collapsed circles toward the center, it might make it more interesting, but that's a lot of work to test something uncertain.
I think I would need a powerup pieces as well, a bomb, or match all type.
I like the idea of spawning based on the matched color too.