@CrossRoads touches upon the upkeep implications nicely
Beyond that keeping engines all the same greatly simplifies operation and prevents potential user error. Keep in mind that many of the common airframes out there are of aging design (>20 years old) and generally come from a time when the mentality about computers was not what it is today. FADEC has made engine control on aircraft much simpler and potentially would make your situation possible. But in a time prior to that there are lots of parameters that would vary between engines, a pilot would be thus responsible for knowing double the amount of critical numbers just to fly the plane. For example
Fuel burn: Even similar engines on the same airframe will have different fuel burns. This is important for trip planning, efficiency, and reserve calculations. Generally in a multi engine aircraft you can make certain assumptions about all the engines being the same.
Thrust parameters: Back in the piston days this was manifold pressure in jets its N1, N1 and EGT. If you have one type of engine you should see pretty much the same numbers across the panel for a given power setting. If you introduce a situation where the engines are different you would need to know all the combinations for each independent engine. Quick panel scanning would also yield lots of confusion.
Engine operating parameters: Not all engines have the same operation parameters so you now create a situation where you must know the parameters of both engines and essentially the resulting set of operating parameters that will allow you to do something. Lets say engine 1 has a 5 minute max thrust limit and engine two has a 4 minute 30 second max thrust limitation you can now only do max thrust climbs for 4 minutes 30 seconds due to the lower number. You may also have differing emergency procedures which would make high stress situations even worse.
Connections: You also run into (on some level) a simple connection issue. Different engines may require different physical mountings as well as different electrical/control mountings meaning you are going to need some confusing mix of components.
Failure is a big deal but its just handled differently than you describe. In aviation the notion is you mitigate the engine failure by just having a second engine. There is not really an added benefit (in practice) by mixing up the engine types on an aircraft. Ignoring situations where the engines failed for external reasons (fuel run out, volcanic ash cloud etc) in the more recent engine failure incidents we have only seen a single engine fail even though both are of the same type.
FWIW some piston twins solve the counter rotating issue by having engines that actually rotate (at the crank) in opposite directions. While they are almost always the same engine design with cams and cranks made to spin in the opposing direction they are, strictly speaking, different engines.