From the National Cancer Institute's definition of "relapse-free survival":
In cancer, the length of time after primary treatment for a cancer ends that the patient survives without any signs or symptoms of that cancer.
Based on that definition, the question becomes whether a death was a "sign or symptom of that cancer." That requires further interrogation of the clinical data.
If a death was due to previously unrecognized cancer recurrence, then that case should be coded as having relapse, not just death, as of the date of death. If the death was due an unrelated cause, then the date of death is a censoring of the time to relapse.
If you can't distinguish the reason for death, then for a type of cancer with high mortality it's probably best to re-define "relapse-free survival" specifically for your study as the "time to first sign or symptom of cancer return, or time to death, whichever came first." Then include that limitation of your re-definition in your discussion of results.
The R survival
package allows the status
variable to be a multi-level factor. That allows you to code a particular observation time as any of censored, relapse, death from the cancer, or other death. Then for any particular survival curve (overall survival, disease-specific survival, relapse-free survival) you specify in the function call which (combination of) status values you want to consider the event.