Dissolve suitable land to single feature:
Add target area field to your points table:
it can be any positive number.
Add empty polygonal layer with numerical field called AREA to your map:
Script below will constrict 'square' buffers of given (target) area around your points:
import arcpy
suitable,points,buffers = "suitable","points","buffers"
##collection of points and target areas
pointsList = [[shp,target] for shp,target in arcpy.da.SearchCursor(points, ("Shape@","target"))]
##shape of suitable land
g = arcpy.Geometry()
goodLand = arcpy.management.CopyFeatures(suitable,g)[0]
curT=arcpy.da.InsertCursor(buffers,("SHAPE@","AREA"))
for pnt,target in pointsList:
low = 0.0
high = pow(target,0.5)
while True:
middle=0.5*(low+high)
rect = pnt.buffer(middle).extent.polygon
pgon = goodLand.intersect(rect,4)
curArea=pgon.area
if (high-low)<0.01: break
if curArea<target:low=middle
else:high=middle
curT.insertRow((pgon,curArea))
OUTPUT:
high = 10*pow(target,0.5)