Requiring advisory opinions would diminish the element of delay and uncertainty, where no one knows whether a law might be found unconstitutional until someone has actually broken it and been convicted, and even then the Supreme Court might reverse itself.
Only if you believe the SC gets to make up its mind without regard to the merits of the case. The SC only gets involved if something about the case itself is murky enough to cause doubt. Hence, one could say, there's only doubt if there's doubt.
Does it explicitly work so? The Congress and states are by Constitution forbidden to pass ex post facto laws, but courts are free to make them, because when they rule, they pretend that they declare what the law "always has been".
This depends if you're willing to define ruling on the application of laws in given and distinct circumstances as "making" law. Again, though, the principals of common law require circumstances to be substantially different in order to merit a different outcome.
When and why was such legislation passed?
I've re-checked and I was in error. The SC decided that it can't be given such a power because of the wording of Article 3, Section 3 (The judicial power shall extend to all cases arising...)
Which they already do without stare decisis.
The notion of "stare decisis" is incumbent in the nature of a common law system. Granting such a notion the same status as the Constitution itself clouds the issue of constitutional interpretation.
Yes, that was more questionable. Basically, when a Supreme Court of the day feels that a previous Supreme Court made an error in applying the Constitution, their recourse ought to be to the process of constitutional amendment (which is not retroactive) rather than reversing a previous decision (which is retroactive).
To be honest, these last two are matters of opinion re the extent of previous judicial (over) reaching.
In principal, though, I think some of these points miss the value of a common law system over a statute or code system. The later involves an agreed upon code of laws, which judges must always enforce. The former involves an organic system of precedents which is always deferred to but always evolves with new legislation and new circumstances. The later is theoretically more predictable but in practice less so: applying a code almost always leaves it up to the judge to define specific circumstances. A common law system (which is what the US currently has) actually becomes more predictable: by defining a more myriad number of circumstances, it actually becomes clearer than a code. Granted, a large part of legal argument is determining which cases apply, but that's what lawyers are for.
IMHO, the consequences of introducing the kind of provisions you envision would increase litigiousness and decrease the efficiency of the justice system. The flexibility previously afforded by the present common law system would not disappear. Rather the inflexibility of the new system would lead to more voluminous amendments to the US constitution (similar to many state constitutions). Additionally, the increased power of the SC (and by extension the entire federal judiciary) would increase the difficulty of filling nominations to that body.
Note that personally I sympathize with the notion that US courts overreach their authority (eg. Bush v Gore). However, I think there are other remedies that may prove more helpful (term limits for judges, more SC justices, renewed focus on legislation as the nexus/source of civil rights disputes).