FB4 response starts with {21, 0, 4, 8, 0, 0, 0, ...} which corresponds to {isc_info_sql_stmt_type, 4, isc_info_sql_stmt_exec_procedure, ...}
while FB5 response
starts with {21, 0, 4, 1, 0, 0, 0, ...} which corresponds to {isc_info_sql_stmt_type, 4, isc_info_sql_stmt_select, ...}
Note, FB5 changed RETURNING clause handling and now it returns result set, not a single row. Therefore UPDATE... RETURNING
statement was described as
isc_info_sql_stmt_exec_procedure before FB5. And since FB5 it is described as
isc_info_sql_stmt_select.
Perhaps FireDAC unable to handle this change correctly when asks for counters to detect changes by the statement.