Joining the tables required for this sort of query does require some dependance on things like property IDs which do seem like something that could easily change between versions and yes there is some complexity introduced by the vary by scenario/time options. Obviously the tables could change too. I guess it is a risk/challenge that it is up to you to take.
You do have another option if you want to go down the SQL route and I have seen it work quite well in numerous instances. There is nothing stopping you from replicating your usage of the Text fields by creating your own custom table to store this information. You can provide a nice interface that doesn't require access to the dimensions/members and is not limited by 5 text fields amount of fields either.