If you want to use a function, there is no need to specify one or more attribute fields when creating the renderer. You should only pass two args to the unique value renderer constructor like so:
var renderer = new UniqueValueRenderer(null, calculateSquareMiles);
You can then access whichever attributes you like from your function, like this:
calculateSquareMiles = function(value) {
var acres;
if ( value.hasOwnProperty("attributes") ) {
acres = value.attributes.M163_07;
acres = number.format(acres / 640, { places: 2 });
acres = acres + ":" + value.attributes.STATE;
} else {
acres = value;
}
return acres;
}