Well, the most important thing is how the 2d geometry is going to get "wrapped" to a spherical surface (especially near the poles). If you do a straight UV NURBS mapping of a flat pattern (like FlowSrf) everything will get bunched up near the poles.
So somehow you need to get the distribution of points on the surface that is non-UV. Grasshopper has a component that does this, but if you distribute the points on the surface and then put circles around them, there is no easy way to prevent collisions.
My feeling is you might need to create a spherical Voronoi and make your circles stay within the cells...