Someone correct me if I am wrong, but I believe the difficulty switches 33 seconds into the screen, so usually by the time you use the bottom hammer the switch will have already occured.
I think this is correct. It's important to note that this is 33 "real time" seconds.
The difficulty switches when timer gets to 6000.
This is much less accurate. The reason is that the switch is based on "real time" seconds. The rate at which the Timer ticks down on a Barrel screen can be highly variable based on how many wild barrels are released and especially based on how many objects are smashed, which pauses gameplay (including the Timer), but does NOT pause real time. Because of this, the switch can actually occur within a pretty wide range of Timer values (say, between 5600 and 6500 perhaps) although it's still good enough to give you an idea that you should be looking out for the switch. Remember, the switch affects all objects on the screen simultaneously, including objects that are already "in play". So, a wild barrel which was behaving like a Level 4 wild barrel during it's first 3 bounces or so off of the upper girders can suddenly convert itself to a Level 5 wild barrel on the last bounce of of the girder directly over your head and instead of bouncing wildly out of the way, it can just drop straight onto your head instead. Watch out for this transition.
L3 and L4 wild barrels also behave identically and use Mario's position to determine the direction in which to bounce. The speed is influenced by randomness.
Interesting analysis Jeff regarding how Level 3 wild barrels are working. However, I wonder if you can take another look through that portion of the code when you get a chance. You are using the term "speed" in your description of what is variable through randomness. My suspicion is that this is not accurate.
I believe that what is variable through randomness is more closely related to "angle". If I were to guess, I would bet that the vertical speed of a wild barrel is fixed. Meaning, there is probably some code that is reused often that handles the physics of gravity -- I'm betting that Vo is always the same (initial vertical velocity after a bounce -- y-direction) and the acceleration due to gravity is applied to the object in a close approximation of what would be expected by gravity (notice that bombs, which do not bounce and therefore do not reset their Vo, accelerate noticably so that their vertical velocity near the bottom of the screen is much faster than near the top). What I'm not clear about is whether the actual vertical distance between bounces is variable (due to the ramping of the girders) -- it appears that they are -- and so it might be true that not all wild barrels reach the bottom of the screen in the same amount of time.
Anyways, if the "angle" of a bounce becomes sharper, and the vertical distance is always traversed in the same amount of time regardless of whether it's a shallow path or a sharp path, the result is that a sharper bounce will yield a faster object. I actually believe that this was an oversight by the programmers, but they left it in after testing because it was just another way to kill the player faster in a manner that is only slightly unfair.