I'm not sure you can conclude that about ME BASIC Nick.
When using a compiler the amount space used depends hugely on your programme structure and cutting out repetition.
For a start a (good) compiler doesn't plonk a load of unused subroutine sections onto the PIC, even though it may all visually appear in your Editor.
Other things (e.g.) un-needed TRISing and ADCxxxing (which tend to be used in general purpose subroutines) can be left out.
On the other hand if you've made procedures 'inline' out of habit and keep calling them then that can waste a lot of space.
Yes, of course, space usage is very much down to efficient writing, but with a compiler it is very much more down to the author with regards to space - including with compilers being able to write your own library routines/procedures sans bloat. Some compilers allow you to rejiggle and rename library routines too in order to reduce bloat.
Most of the stuff I write these days involves me writing my own procedures from scratch and it can save vast amounts (Flash and RAM) usage compared to the standard routines. There are other compilers that are superior to ME BASIC in this respect which allows the user to do this.