Let's talk about how TOR is working.
Even if a single entity controls both the entry as well as the exit node for any given connection through the Tor network it doesn't matter.
There are bad guys running Tor nodes, some have been discovered in the past but noone can fully monitor all Tor connections all the time.
Everyone speaking about TOR security flaws is talking about timing attacks from a globally aware scanner. You don't need to compromise exit nodes to do this, and thus it's not a problem with allowing anybody to run nodes.
If I visit a site, while someone owns the entry node and the exit node. The second communication (entry -> relay) is encrypted to the 2nd node's key. How does the entry node know the destination (what exit node is used)?
It doesn't.
If big brother owns entry and exit, it knows someone visited a site by using the timing information, well out of the fact that TOR is a low-latency mixnet. Getting information is possible if you can view the entire internet anyway.
The chance that at least some Tor connections are compromised due to something other than simple software exploits is rather unlikely, but it can happen.
The fact that each single connection is compromised at any given moment is virtually impossible,
So back to the security theorem.
All our security, take GnuPG, ssh keys, SSL, ... is based on carefully selected functions where we do believe it is to complicated to build the inverse function. So cryptology is something like a religion where everyone believes that it is too expensive to guess the right key.
It is all about timing. In X years every laptop can crack up Y bit SHA2 keys.
Back to TOR:
TOR is save if a lot of people are using it. Out of two factors:
1. More nodes reduce the risk to go a bugged route through the TOR net
2. More nodes allow more bandwith and a higher number of routes (relay nodes)
3. More users generate more shadow traffic
Both sound nice, but it is all about making it more complicated.
Back to TOR hidden services:
Because hidden services do not need exit nodes it is even more complicated to trace them. Because you have to control the randomly choosen relay node (which is then the "exit" node) that is contacting the hidden service. It is all within TOR.
Best way to make TOR traceable: Fear.