- If it's not a consensus rule, then other nodes will accept a transaction that doesn't satisfy the attached script. In other words, if nodes can't see the entire script, how can a node know whether someone claiming the lottery winnings is actually authorized to do that?
- If it is a consensus rule, that introduces a new set of problems. First, in order to tell if a block is valid, you need to download the scripts from the P2P network, and check that all of the scripts are valid. That increases the amount of time it takes to verify blocks, and therefore increases the amount of orphan blocks.
The second problem that this introduces is that full nodes synchronizing for the first time need these scripts, or they won't be able to check that the blocks are valid. Therefore, the scripts need to be stored indefinitely, in case new nodes join the network.
This doesn't really solve the blockchain bloat - it just moves the problem around.
There's one more solution that does use the Bitcoin blockchain, though. You could follow Counterparty's example, and create a system where you send a Bitcoin transaction with additional metadata to identify it as a colored coin. You don't change transaction validity rules on the main network; rather, you say that if the transaction doesn't follow certain rules, then it is not a valid TuringCoin transaction for the purpose of establishing ownership of TuringCoins. (Other TuringCoin transactions within the same block would still be valid, though.)
That's not an altcoin in the traditional sense (you're using Bitcoin's blockchain, and you must pay Bitcoin transaction fees) but it is an altcoin in the sense that you're creating your own token that isn't fungible with Bitcoin.