They work very good.
This works better. These rainbow tables can be used to store 3*10^10 hashes in a 1tb harddrive (~$50 for the harddrive), while this method can solve 3*10^10 hashes for 100 satoshis (~0.0001). The comparison isn't exact because they use word combinations, but the ASIC crackers are still more efficient.
First of all, Bitcoin mining uses a double application of SHA-256, so SHA256(SHA256(input)).
Secondly, ASICs don't work with arbitrary data. They are fed a block header, add a nonce value to it, hash the thing twice and check if the outcome is below a certain value. This is completely different from being fed a hash and then trying random input until it matches the given hash.
Your first point is valid, most ASICs are hard coded to do double-SHA256, which means only compatible FPGAs and ASICs can be used on single hash passwords, otherwise the website must use double-SHA256.
As for your second point, I find it hard to believe that this is true for all ASIC. Could you provide a source?