Bascom ist ... das was man draus macht. Ob der Code effizienter als C ist, ist sicherlich von Fall zu Fall verschieden. Mal ein Beispiel aus meinem aktuellen Gebastel:
Ich habe einen Atmega32 der über nur 2 Ports einen 512KB SRAM ansteuern soll. Dafür gibts 3 Latches die bla, bla, usw. ... Dadurch, das die Long-Speicheradresse ersteinmal auf die Latches verteilt werden muss, ist das natürlich ganz schön langsam. Ok. Aber zumindest die Software, die das steuert, möchte mann so schnell wie möglich haben.
1. Software mit Bascom. Schnell mal hingeschrieben, funktioniert aber langsam. 15kB pro Sekunde. Na ja.
2. Bascom optimiert, z.B. die Aufteilung der Long-Adresse mit Hilfe von Overlay-Variablen und noch einiges mehr. Funktioniert um ein Vielfaches schneller. Sehr schön, 140kB/Sek, Ziel erreicht
3. Assembler. Vielleicht geht das Ganze ja noch schneller. Ganz schlank und flott in Assembler. Und ? Exakt so schnell und so groß wie die optimierte Bascom-Version.

Um gute und effiziente Software zu entwickeln ist es nicht wichtig, ob es nun Bascom oder C ist. Es kommt darauf an, das man weiß, was man tut.
Ich würde niemandem empfehlen, von Bascom nach C, oder von C nach Bascom zu wechseln, solange er/sie sich in seiner Sprache wohlfühlt. Wer sich verbessern möchte, der sollte aber ruhig mal in Richtung Assember schauen.