that should be possible, ERC20 Token is basically a piece of solidity code that can be actually extended with some functionalities. On the other hand online exchanges do technically exactly the same thing, like changing an ERC20 token to Bitcoin is an exchange from the Ethereum Blockchain to the Bitcoin one.

    The real challenge is however to convince the community and the investors that the exchange of tokens runs in a no-trust way between the two blockchains, meaning that the as soon as you burn one token on one chain a new one automatically appears on the second one. It requires an adequate crypto protocol, implemented probably in both chains, in which one does not need to trust to any central authority and the protocol can not be hacked.

    Normally, an Ether token / ICO is essentially a smart contract, in which a specific set of outcomes is mapped.

    From a programming perspective, providing you clearly define the conditions for your non-Ethereum token, you probably could add in the code to have that option – up to a point.

    However, you might also enter questionable legal areas.

    Moreover, by attempting to mix-and-match outside of the Ethereum blockchain, arguably, you could be losing the benefits of smart contracts: automatic running, low management, distributed networking, trustless solutions, etc.

    All tokens built on Ethereum implement the ERC20 standard interface. Doing so allows tokens within the Ethereum ecosystem to be interchanged easily. However, I understand your question to be whether you can take ERC20 tokens and exchange them for non-ERC20 tokens on a different blockchain (like Bitcoin). Theoretically you can, if you could find a cryptocurrency exchange that would do that for you (e.g. ShapeShift). Fully decentralized inter-blockchain transactions are still an active area of research (e.g. Polkadot)