What I know is that functions are not calculated when you create an item, only when you save it. Therefore, the FVA value might be null as long as you havent saved.
But, when you save it your constraint shall react.
The question is now: which is the first, the constaint or the FVA calculation?
Actually, I dont know.
According to your description the constraint is the first, then the FVA.
This is - obviously - part of Integrity core.
Does this explain at least?