Is there any way the bitshares blockchain can:
1. Randomly generate a public key / private key pair
Yes.
2. The private key is encrypted, and known by no-one besides the blockchain
No.
That's the problem. The very nature of the blockchain means that all of the transactions on it are publicly known and the database state they modify can be deterministically computed by anyone.
To actually trade BTC (or any other cryptocurrency other than the ones existing on the blockchain in which the exchange is implemented on) with other cryptoassets, the exchange would need to be able to control that BTC. Meaning it needs to be able to create signatures on arbitrary hashes using the private key corresponding to the BTC address. Now I believe there is a way using threshold signatures that is compatible with ECDSA to do this while distributing the trust to many parties. For example, one could transfer the BTC to an address that can be only be compromised by collusion of at least 51 of the 101 delegates but still allow transactions to be signed if approved by all 101 delegates. (In practice I would probably make this 46-of-101 because I don't want to require all 101 active delegates to participate. With the
t <= (n+1)/2 requirement, t=46 gives t'=91, which means at least 90% of the delegates need to participate in the interactive signature process. This relaxation also helps with the transition process as the set of active delegates gradually changes.) While this is an improvement in decentralization of trust, it is not trust-free like a typical blockchain is. You cannot switch over to a fork of a blockchain and have the ownership properties of that BTC change with it. Also, as the active delegates change, the old delegates are still the ones who control the BTC given to them. You would need to provide economic incentives for them to keep moving the BTC to the updated set of 101 active delegates in a timely manner.
In short, it is not doable in a truly trust-free way. Instead, forget about actually trading BTC. What you care about is trading the value of BTC, and that is what BitBTC is about. Then use gateways that spread the trust of the BTC reserves using multisig to withdraw and deposit your BTC in exchange for GATEBTC.
Edit: Although I have to say, the idea of using the 101 delegates and threshold signatures to implement a
BitShares standard gateway for ECDSA-compatible cryptocoins (basically Bitcoin and probably all other altcoins) is a compelling idea. Since it is placing trust in the same entities that are already trusted (via economic incentives) to behave, it gives that gateway a little more legitimacy than any other.