Looking pretty good!
Just be careful in declaring what can or cannot be done. Beginners reading a tutorial may take things at face value without questioning them or examining other information. I've done it myself, many times - making bold statements as if they are law (pats self on back)!
You didn't make any bold statements, your information is nicely laid out and to the point, but you listed Extra Actions as 'cannot be integrated because DB doesn't support variable name referencing.'
You're not defining what you mean by this and it almost seems like a side note to yourself. What's the significance of this in terms of Extra Actions? What are the alternatives? What is the goal? Referencing a variable to me means looking at it's memory position and getting the value from there. For DB, this can be accomplished using memblocks - the variable data could be stored in groups of 4 bytes or 255 bytes for strings. Then use an offset to the position in the memblock where the data is stored.
Or you could use arrays and use the index as a reference to a value. Instead of relying on the typed string name of the variable (if that's what you mean by reference) the array index points to values. It means setting up your menu system with a set of arrays. In DB, that would be global arrays so the values can be shared across functions (or use memblocks).
Just sayin'
Enjoy your day.