Especially as is this not a relatively temporary situation ?

If a developer is looking to upgrade to DF20 then one assume they are a fairly regular updater (or really want Unicode support) and will stop using 19.1 and prior when DF21 arrives if not before ?

So at that point all these compiler directives and extra code can be removed again

Since going to DF20 requires changing of SQL column types to NCHAR and NVARCHAR to take advantage of Unicode, then whilst you can still read the data in 19.1 so long as those columns don't include Unicode data, I would have thought that a common code base between 19.1 and 20.0 projects has a relatively short shelf life ?