1) You are not chasing a pipe dream. Being the smartest person in the room is a terribly taxing position to be in, especially if you are not compensated by title or pay. I've been in that position enough times that my current primary qualifier for employment is to work
for people who are smarter than me, as well as a few people to work
with who are smarter.
You need to turn your interviews in the reverse: demand interviews with your future co-workers/peers, and evaluate their competency (and "culture").
In other industries, it is a smart move to wait for change: wait for a new/better manager (managers, especially CEO's have much higher turnover than anyone else), or wait for a better culture or environment/teammates.
This is not so in computing. You don't need to wait. There are greener pastures.
2) If you are not compensated by title, if you do not have the ability to hire and fire, you will not be able to change culture.
The company you work for is likely to promise everything but follow through with nothing -- they are getting a good deal having an expert perform tech support, saving two or three new hires if you leave. I've been replaced by entirely new business units of 6 or more people after my departure. In retrospect its quite clear why paltry raises and weak promises to provide new hires or changes in the group to string me along as they did.
cut your losses.
A side note: many programmers "retire" into mediocracy, performing undemanding work in undemanding timelines. Pretend you know a great deal less than you really do, and pretend like the simple work that you do is harder than it really is. Spend very little of your day doing any actual work.
I've had many people try to sell me on the idea that such environments can provide you with plenty of time to "work on your own stuff", but I've never seen anybody create something on their free time that I admire while working in such an environment. I don't believe it.