Suppose I need a rough estimate of the current value of BTC in USD, is there anything in the blockchain that could be used for that? For example, is there some kind of correlation between block difficulty vs price, number of transaction vs price, etc?
Not currently. There is a rough correlation between difficulty and price, but it tends to be the latter affecting the former (so a delay is involved), and you certainly couldn't use it to predict with any usable degree of accuracy. Theoretically, when (if) Bitcoin stabilizes significantly, you could use the current difficulty to predict the price with reasonable accuracy, as mining profit margins would approach zero, but the markets are too volatile and entry barriers to mining too high at the moment for that measure to work accurately.
If you're trying to implement the current exchange rate in a program, see this question.
I wrote a bitcoin price theory is about a correlation of number of bitcoin addresses (from blockchain) and the bitcoin price, with a law of networking use like the metcalfe law.
here I posted my study about your question
Not really, you could kind of guess that as difficulty rises the previous price should technically go up to make sure the miners receive an equal reward, but this is not a rule its just speculation. so yea there is no hard data in the block chain that would actually determine price. You have to assume any expected changes to the chain are also usually pre-priced into the market price
You could use the difficulty as a lower limit for the price of Bitcoin as miners will stop mining (thus decreasing difficulty) if it is no longer profitable (which depends on the Bitcoin price). So the price affects difficulty but not necessarily the other way around.