1: True enough, if you don't feel like getting familiar with actual programming, those apps are the way to go; many good games have been made with them. I suppose I assumed an interest in programming x3
2: I started out with PAlib too, and it was great (also great-ly bugged). However, when moving over to libnds, I found I pretty much had to start all over, so I'd say if you think you'd ever want to switch over to libnds, it's best just to start with it.
I haven't used NF's lib (I wrote my own), but if I'm not much mistaken it's MUCH closer to libnds than PAlib ever was, so the same issue wouldn't really apply.
5: Yes. If you're really serious about your project, I'd even recommend using a subversion management like svn or git (and commit often). You can get free git repositories here:
http://www.assembla.com/ (you can get them elsewhere too, but usually they have to be open-source and publically accessible, assembla allows private repositories).
5.1: Speaking of screwups, be prepared to start all over at least once. You'll have to refactor code here and there based on something new learned or some bug you found that is deeply intwined in your code. Don't let this discourage you. (I've had to rewrite DSLiero at least 3 times because of these exact reasons..)
6: Additionally,
http://libnds.devkitpro.org/index.html will explain most of what you need to know about libnds specific functions. Even with other libs on top, libnds will be the basis, so you can (and likely will) use these functions.