Any inputs on the above issue will be really helpful.
I am not sure of the benefit that would be obtained by being able to do this. If you wanted to provide further detail about the functional reason for looking for this, perhaps some alternative could be provided.
In any case, the flexfield definition is frozen and compiled to ensure consistent data, and the validation parameters are an important part of this definition. It would seem the intention would be that this could not be simply overridden via a form function.
Can you try with Custom.pll.
Just an example:
IF (event_name = 'WHEN-NEW-BLOCK-INSTANCE' AND form_name = 'INVIDITM') THEN
IF (fnd_profile.VALUE('RESP_NAME') = 'Inventory') THEN
block => 'MTL_SYSTEM_ITEMS',
FIELD => 'DF_MIR',
enabled => 'N',
read_only => 'Y'