<p>I am playing with a CAD application using MFC. I was thinking it would be nice to save the document (model) as an SQLite database.</p>

<p>Advantages:</p>

<ul>
<li>I avoid file format changes (SQLite takes care of that)</li>
<li>Free query engine</li>
<li>Undo stack is simplified (table name, column name, new value
and so on...)</li>
</ul>

<p>Opinions?</p>

This is a fine idea.  Sqlite is very pleasant to work with!
But remember the old truism (I can't get an authoritative answer from Google about where it originally is from) that storing your data in a relational database is like parking your car by driving it into the garage, disassembling it, and putting each piece into a labeled cabinet.
Geometric data, consisting of points and lines and segments that refer to each other by name, is a good candidate for storing in database tables.  But when you start having composite objects, with a heirarchy of subcomponents, it might require a lot less code just to use serialization and store/load the model with a single call.
So that would be a fine idea too.
But serialization in MFC is not nearly as much of a win as it is in, say, C#, so on balance I would go ahead and use SQL.