Historically, sidechains have been promoted as a scaling solution for bitcoin while their most important challenges considered to be trustless pegg-in/pegg-out and 51% attack., but in a hypothetical scenario, where everything is fixed magically, still we'd have design and implementation challenges which could be easily addressed if the new blockchain was another instance of bitcoin, maintainable by bitcoin Core client software!
Obviously, It is feasible to run multiple instances of bitcoin client (after some tricks and tweaks), but it is not highly desired for the problem domain (sidechains) because eventually the client should become 'aware' of the multiple chains it maintains, to help with the communication between the chains, e.g., using some (future) shared memory space. For now, consider it as a lab experiment: Can I run my client bitcoin software such that it maintains multiple blockchains?
To make it a bit more complicated: The said blockchains are presumably, maintained by using just one shared networking layer (tweaked to dispatch messages properly), still they belong to different networks.
The latter raises another new challenge: Enhancing the networking layer to maintain multiple networks, such that a node is able to reside on a subset of these networks. Let's consider this as being resolved already, i.e., messages are being dispatched and tagged for their respective blockchain by the networking layer.