Hacer esto de forma iterativa en un modelo con selecciones es un enfoque, pero hay un par de otras opciones que creo que eliminarían la necesidad de iteraciones. No tengo del todo claro si usted está tratando de encajar una solución en un modelo más grande que ya ha construido o ir la ruta del modelo debido al tamaño de los datos y las iteraciones necesarias para utilizar las selecciones. Lo siguiente podría implementarse en un modelo, pero se trata más bien de resolver el problema de la doble cuenta de tu método inicial de Intersect.
Una de ellas sería convertir los bloques censales en puntos. Con una licencia avanzada puede utilizar Característica a punto o, si no tiene Advanced, hay una solución un poco más larga que consiste en calcular la XY de los centroides y crear una capa de eventos con ellos. Ambas cosas se discuten en esta pregunta . Una vez hecho esto, podrías intersecar esos puntos y tus límites F (ya que es poco probable aunque posible que un punto centroide caiga exactamente en un límite F). A continuación, puede ejecutar Resumen estadístico en la capa de puntos resultante para obtener una población total por Fboundary (y si es necesario unir/juntar el campo de esa tabla de resumen de vuelta al Fboundary para obtener la población como un atributo).
Otro planteamiento sería utilizar el prorrateo, tal y como se ha comentado en esta pregunta . De hecho, esto dividirá el atributo de población de las manzanas censales en función de cómo estén divididas por los límites F, de modo que si una manzana tiene 2/3 en un límite y 1/3 en el otro, las nuevas formas obtendrán 2/3 y 1/3 respectivamente del valor del atributo de población de la manzana original. Sin embargo, hay que tener en cuenta una serie de consideraciones para seguir este camino, algunas de las cuales se comentan en esa pregunta (polígonos de astillas, precisión del reparto por áreas, etc.).