The thing I like most about the Picaxe is how fast it is to get a simple project up and running. Simple things should be simple to achieve. That's why I still us it a lot for quick proof-of-concept tryouts. Speed is not a big factor for probably 95% of applications that the typical user cares about. For the rest you can always move up to a "real" PIC or AVR, but it takes longer to get a new program running (I just lost a couple hours recently doing debug because I had forgotten to turn off the analog functions on my serial pins on a PIC, which are on as power-up default, as a result the PIC did not receive anything; would not have happened on a Picaxe which takes care of setting the correct pin state for each command automatically...).
As to the discussion about Basic vs. C: Personally I use C where I can for microcontroller work and find it pretty easy to use, very compact, and not hard to read at all (I do not use convoluted statements, and liberally add comments to every other line or so), but of course I have been using C for half my life. On the PC (Windows) on the other hand I use Visual Basic. Thus I would not get into a religious war over one against the other. Modern Basic (not Picaxe Basic though) has pretty much the same possibilities to produce well structured code as C, Pascal and other languages (functions and subroutines with parameters, local variables, while loops, ability to break up a program into several files, etc.). So producing well-readable code (no matter if it is C or Basic) really depends on your programming style much more than it depends on the language syntax. I can easily write very convoluted Basic code that is way harder to understand than typical C code, meaning you may be able to read each Basic statement but won't be able to figure out what the code does. On the other hand, it's not really hard to understand that in C,
while (i = 0; i < 10; i++) { ... }
corresponds to
let i = 0
while i < 10
...
i = i + 1
wend
in Basic after you've used it a couple times. Just a somewhat more compact way to specify exactly the same sequence of actions .
One thing that cracks me up is when I hear blanket statements like "C produces more efficient code" or "Basic produces more efficient code", especially for microcontroller applications. Simply not true either way. Actually, the company whose compiler I use (Mikroelektronica, MicroC) also offers a Basic compiler and a Pascal compiler. And if you dig a bit deeper you find all three use the same core compiler, just the frontend is different, meaning code written the same way in either language will produce the same machine code, use the same space, and run at the same speed. There really isn't much fundamental difference between all these languages, they all use the same structures (functions, parameters, loops,...), only the keywords and syntax are somewhat different looking. Just refer to the example above and you see that there is a 1:1 correspondence for each code segment. (I do like the fact that C needs less typing, but fully understand if someone else prefers writing out commands in a more English-like syntax like Basic, but for a compiler that is just different strings with the same meaning). One thing people are afraid of when starting out with C are pointers, but also using these only needs a little practice and then becomes second nature very quickly; no magic involved.
As for Picaxe Basic, it is NOT a very well structured language (claims further up in this thread notwithstanding). It lacks any good way to encapsulate or protect data - no functions with function parameters (only gosub), easy to corrupt variables (because you have to manually assign names to memory locations, the compiler doesn't do it for you), no straight-forward arrays. This is ok for smaller programs (2-3 pages or so) and makes them quick to write, but for anything larger you find yourself doing many things that a compiler could do automatically (e.g. allocating space for variables, local variables,...) and thus would be less error prone. I would NOT want to write and maintain a program of 2000 lines of code or more in Picaxe Basic, that's not what it was designed to do... (remember, the origin is the Picaxe 08 wich limited you to couple 100 lines at best). Of course, as I said above, much comes down to your own style of writing code in terms of readability and maintainability, but the job is much easier in a more structured version of programming language (C, modern Basic, etc.).
Horses for courses, as has been said many times on this forum, and the Picaxe is about the best I can recommend (and have recommended often so far) for starting out (I myself got started on microcontroller on the Picaxe and am still grateful for that!), smaller projects, quick hacks, education and hobby. And once you've learned programming in one language (e.g. Picaxe Basic) well, adding a second one will be much faster and easier, and adding a third will be close to trivial.