text: Title: Recursive CTE has wrong number of columns when combined with joined table inheritance
  Body: ### Discussed in https://github.com/sqlalchemy/sqlalchemy/discussions/10123
  
  the ORM is putting the second column in some way that CTE is not picking it up.   If I do literal "Manager.id, Employee.id" it works, if I do select from the join() of the two tables, it works, so see what's up in compiler
  
  
  ```py
  from sqlalchemy import ForeignKey
  from sqlalchemy import create_engine
  from sqlalchemy import select
  from sqlalchemy.orm import DeclarativeBase
  from sqlalchemy.orm import Mapped
  from sqlalchemy.orm import mapped_column
  from sqlalchemy.orm import Session
  
  engine = create_engine('sqlite:///:memory:', echo=True)
  
  class Base(DeclarativeBase):
      pass
  
  class Employee(Base):
      __tablename__ = "Employee"
  
      id: Mapped[str] = mapped_column(primary_key=True, index=True)
      discriminator: Mapped[str] = mapped_column()
      general : Mapped[str] = mapped_column()
  
      __mapper_args__ = {"polymorphic_on": discriminator}
  
  class Manager(Employee):
      __tablename__ = "Manager"
  
      id: Mapped[str] = mapped_column(ForeignKey("Employee.id"), primary_key=True, )
      special : Mapped[str] = mapped_column()
  
      __mapper_args__ = {
          "polymorphic_identity": "Manager",
      }
  
  
  Base.metadata.create_all(engine)
  
  my_cte = (select(Manager)
            .filter(Manager.special == 'my special')
            .filter(Manager.general == 'my general')
            .cte(recursive=True))
  
  session = Session(engine)
  session.scalars(select(my_cte)).all()
  ```
  
  