HL7 FHIR is not a backwards- or forwards-compatible standard overall, although portions of the specification have been marked as "normative". Normative sections are considered permanently stable and will not have breaking changes applied to them. The Patient resource (as of FHIR R4) is an example of a Normative resource.
Smile CDR fully supports all released versions of FHIR from the DSTU2 release onward, and can also support draft (pre-release) resource definitions as well. When starting a new project and configuring a FHIR repository, a FHIR version must be selected. If you are implementing an Implementation Guide (e.g. the CARIN Consumer Directed Payer Data Exchange), then this IG will dictate the version of FHIR that you should select.
An ongoing avenue of discussion in the FHIR community revolves around how to support new versions of the specification. Smile CDR is actively participating in these discussions, and has developed code to convert data automatically between versions of FHIR. As a proof-of-technology we make the FHIR Versioned API Mode ( https://smilecdr.com/docs/configuration_categories/fhir_endpoint_conversion.html#property-versioned-api-mode ) available via a simple configuration switch. We are also planning a "data at rest" converter that will allow incremental upgrades to data in place. This is not as pressing a concern as it might seem however, as real-world experience shows that working systems rarely need FHIR version upgrades, and in fact this is often explicitly forbidden either by regulation or by policy.