The motivation is the same as one gets from moving from C to C++; you start with a small language (in this case, assembly) and then build on top of it. I've tried this recently in my own course, and found that the morale boost from having something that actually ran and produced results that they understand significantly improved learning.
As for AST design, it is easier to design the AST first than you might think. Just ask the designers of Lisp.
The music site Magnatune (http://magnatune.com) does that.
They split your money into two piles, one for downloading (you can download anything you want) and one for streaming.