I was reading this answer previously and it got me interested in purchasing a Nintendo DS Lite for learning to program embedded devices. Before I go out and splurge on a DS I had a few questions:
No, there really isn't much of a limitation beyond that of the hardware, and even that can be overcome with enough effort. Quake has been ported to DS, for example, and particle games that utilize both processors have been made. There has also been discussion on how to make higher quality 3D scenes using a double pass renderer. There are multiple resources on the Nintendo DS section of the GBADev forums.
I would say that the DS is an excellent route to embedded systems development; there is a large and active community that is willing to answer questions and give support, and there is so much hardware built straight into the thing. It saves you the time of building a system to test on.
The CycloDS Evolution is a good card and is fairly common, so it shouldn't be difficult - if necessary at all - to make your homebrew compatable with other cards. However, be aware that other popular choices are the M3 line and the R4 line, which are pretty much the same thing. I have a TTDS, and it works well, but not out of the box. I would reccommend the other three mentioned.
beginning DS devving, I would
reccommend looking at the basic
examples found in the
examples folder of devkitPro and reading the GBA
which covers many of the concepts
that are used in both GBA and DS
development. A more DS oriented
Introduction to Nintendo DS
will help beginners get on their way
in the DS world. There is also a very comprehensive documentation
spec for the GBA and DS known as