But you -- under your intermediate scrutiny test we would not be hypothesizing what might have been in Congress's mind. Your First Amendment test is a stringent one. You have to have an important purpose, and the means that you use is necessarily tied to that purpose. If you take that position, I don't see how you make the retroactive-prospective line work.
Your First Amendment test is open-ended and optional. 
( z1 and :op ( z2 end :ARG1-of ( z3 open ) ) :op ( z4 optional :domain ( z5 test :mod ( z6 law :name ( z7 name :op "First" :op "Amendment" ) ) :poss ( z8 you ) ) ) )