So this is not criticising anyone, just an attempt at finding the bases, and starting at the OP invitation to discussion. I have myself transitioned between developed environments and paradigms so I know this is a bit painful.
.. since i am an experienced C programmer, i would like to be able to program it with gcc
The Arduino framework for Teensy uses gcc, so any little *.ino sketch you write will be compiled by gcc and deemed worthy or not from gcc rules. The programming language is C/C++ and compiler is gcc.
The next element is the build system, in old fashioned, UNIX based, setups this is cantered around Makefiles meticulously crafted by the programmer as long as we progress beyound Hello World where no Makefile is needed. In Arduino this is handled by the IDE, there are makefiles but the user doesnt have to write them, it is done by the framework, in much the same that any modern 'professional' framework hides such low level nitty gritty from the user, and to a large extent abstracts away the processor and system dependent details from the user. The Arduino IDE and framework does this quite successfully. Of course there are situations where problems appear and a deep dive into internals is needed, this is the same for all vendor supplied 'proffesional' environments.
So we come to the IDE and its quality or lack thereof, well it is perfectly usable, perhaps not so much for larger projects factored into sub modules. For beginners there is only a *.ino sketch, then libraries are added, just like stdlib and stdio must be added for any useful oldfashioned command line C programming ( been there , done it ). Its also easy and efficient to add files to the sketch directory to factor code into smaller chunks, those can later be turned into libraries. At the moment no intrusive typing completion ..., is it great no perhaps not, useable for sure.
Then we come to debugging, in my old days trying to run gdb in text mode that was painful, current IDE has no debug support but the coming IDE 2.0 has it, but still feels buggy. Good enterprise environments have superb debugging but there is a price, and they are limited to that specific platfrom.
[ Not trying to trample any toes but this is about my feeling, I mostly use Arduino and avoid supplier IDE's ]