The impression I've gotten is that the GBA is powerful enough that you can write most of your programs in C, but some performance-critical stuff (like if you're trying to draw pixels directly instead of using the sprite/tile hardware) is best written in assembly. If you're interested in learning more, I would highly recommend this tutorial: https://www.coranac.com/tonc/text/toc.htm
I'd say it's one of the best systems to get into on-the-metal Homebrew.
There’s more potential complexity if you want to do complex things and maybe 3D is hard (I’ve never done it) but the basics are about as straightforward.
I would argue otherwise; interfaces to other people’s stuff always are the most difficult parts of programming. When you do it yourself (3D projection etc.) it’s just you and reason and that’s not so bad.
On top of that, DS cartridges are 8 - 512 MB.