Are 'safe_value' values generated dynamically from the 'value' value?
Yes. safe_value is derived from value; safe_value contains the results of _text_sanitize() after it applies all the filters you've set on your text field. 

It isn't set after a node save; it's set on a field load; the field module loads it via hook_field_load() with its text_field_load() invocation.