No, FlexCel has recalculated sheets since version 5 long, long ago. Data validations are really a layer over the cells, they don't matter for calculations or values. It doesn't matter if there is a data validation in a cell or not, what matters is what you have in the cell. You can even write a value that is not valid in the cell with FlexCel, and Excel won't complain. Data Validations are only applied when you edit the cell.
I think there should be something more basic going on here, but I am not sure what. Can you send me a small file that shows what you are seeing?
I've tried it here with the code below:
program Project2;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
FlexCel.VCLSupport,
FlexCel.Core,
FlexCel.XlsAdapter;
begin
var xls := TXlsFile.Create(1, true);
try
xls.SetCellValue(1, 1, 'a');
xls.SetCellValue(2, 1, 'b');
xls.SetCellValue(3, 1, 'c');
xls.SetCellValue(4, 1, 'd');
//Data Validation
var Validation := TDataValidationInfo.Create(
TDataValidationDataType.List,
TDataValidationConditionType.Between,
'=$A$1:$A$4',
'',
True,
True,
True,
True, '', '',
True, '', '',
TDataValidationIcon.Information);
xls.AddDataValidation(TXlsCellRange.Create(2, 2, 2, 2), Validation);
xls.SetCellValue(3,2, TFormula.Create('="hello " & B2'));
xls.SetCellValue(2, 2, 'b');
xls.Recalc;
WriteLn(xls.GetCellValue(3, 2).AsFormula.FormulaResult.AsString);
xls.SetCellValue(2, 2, 'potato'); //this value is invalid, doesn't matter
xls.Recalc;
WriteLn(xls.GetCellValue(3, 2).AsFormula.FormulaResult.AsString);
xls.Save('test.xlsx');
finally
xls.Free;
end;
readln;
end.
And it works as expected. It shows the formula value is modified:

And if I open the file, the value is changed as it should (even when the data validation is not even valid):
