I think the confusion is the different functions of the feasibility model and the developer model. The feasibility model classifies each parcel by building form, where classification depends on a pro-forma analysis of profitability. The output of the model is dataframe with parcel_id as the index, and there is a column that has the form that was determined to be the most profitable building form for that particular parcel. Then that table is stored as an orca table to be used in the developer models.
The developer model randomly picks parcels from the feasibility output using the max_profit to create the probability distribution used for the random pick. The first model filters the output of the feasibility model using a list of building forms. So in a residential model we could pass ['residential', 'mixedresidential'] to the developer, and the model's choice parcel set for the random pick would be limited to the parcels with residential or mixedresidential forms as the most profitable. So the key to not having an overlapping problem, is to make sure that you don't include the same form to both models.
We do have parcels where zoning would allow both non-residential and residential development. The feasibility model uses the zoning regulations along with a number of other assumptions about price, parking, zoning codes etc. to determine which building form is the most profitable. So if a parcel is zoned to allow residential and commercial, the feasibility model will calculate the max_profit of each different building form for every parcel. Then it will look up which form is most profitable, and output a table of parcels with the most profitable form, max_profit, and a bunch of other calculated variables.
I think there could potentially be problems when mixed use building forms like mixedresidential or mixedoffice are frequently picked for redevelopment. For example, if you add mixedoffice (30% res, 70% office) in a non-residential developer model, the added units from the residential side are not accounted for in the residential model. So you might be at risk for overbuilding residential units from mixed use buildings being added in the non-residential model.
I hope this helps, we are still working on a full implementation of this model. We have been using co-star to update pricing data to help improve the accuracy of our developer model. We are also working on updating our parcel and building data sets. Let me know if you have any questions or want to share what you guys are up to with UrbanSim.