I think you have no concept how invasive that would be. Tables not represented in the catalogs would be a disaster, because *every single part of the backend* would have to be modified to deal with them as a distinct code path --- parser, planner, executor, loads and loads of utility commands, etc. I do not think we'd accept that. Worse yet, you'd also break client-side code that expects to see temp tables in the catalogs (consider psql \d, for example).
I might be missing a point here, but I really do not see why we would need an alternate code path for every part of the backend. I agree that all utility commands, and client side code would break, but if we abstract out the syscache API and/or modify only the syscache's underlying access paths, then would the backend really care about whether the tuple comes from physical catalogs or in memory catalogs?