Calculated field works in analysis, not in dataset

I have a calculated expression that is parsing a URL for the domain name:

replace(substring(replace(replace({url},'http://',''),'https://',''),0,locate(replace(replace({url},'http://',''),'https://',''),'/',0)),'www.','')

It works fine when I add to to an analysis, but the SPICE import fails when I add it to the underlying dataset. Any insight into why it might fail on the dataset?

Hi, you can use replace in analysis to change the value for certain field, however, that doesn’t change the value of the raw data. In the dataset calculated field, we don’t allow that.
If you want to replace the value to the raw data, you can do it directly in your database, or write query in custom sql.

I don’t understand still why a calculation permitted in an analysis is not permitted in a dataset. I didn’t see anything in the documents in the replace function stating hat it could not be used in a dataset.