Background
I'm building a simple storage server for home usage, and I'm modelling it slightly after our Solaris storage servers at work. But at a smaller scale. The basic layout will be a chassis with four hot swap disk slots, Solaris on an SSD or an USB stick, and two 1 TB disks in a mirror set. This will leave me two empty hotswap slots to add more storage when needed.
At work I wouldn't consider a two disk mirror without a hotspare, given the risk that the second disk will be from the same factory batch as the first and might fail with identical symtoms ten minutes after the first disk fails. At home I don't feel like paying for hotspares or more disks, but would like some protection against this.
The Question
What's the consensus on mixing drives in a mirror set, say one WD RE4 and one Seagate Constellation ES? It should at least minimize the possibility of a systematic manufacturing defect taking out both disks. A small size difference is no problem for ZFS to handle, but are there any other potential pitfalls or horror stories here?
I don't think you need to worry too much about the possibility of a bad batch of disks. You're still using readily-available consumer-level drives, and the probability of them both failing without detection that ZFS could possibly recognize (SMART, corruption, etc.) is incredibly small. Try to use these disks in a mirror arrangement versus RAIDZ. It's probably not even necessary to have a hot-spare. Go to your local retailer and buy a replacement disk if one fails. You're more likely to experience an SSD failure, USB stick problem, or an issue with your hardware than a catastrophic simultaneous drive failure because of a bad batch of drives.
If you make sure you run SMART monitoring on the drives so you have advanced warning of deterioration so can replace drives early this won't be a problem. Even in the case of a sudden failure that SMART can not predict the chance of the second half of the mirror failing before the other is replaced is very small (given you can probably pick up a new drive from a local retailer within 24 hours, much less if the failed drive failed during shop opening times).
Remember that a hot spare will not protect you from a number of possible disaster situations (a fried controller that takes both drives out with it at the same time, the hot spare being just as dead when time comes to activate it, filesystem corruption (RAID1 will accurately keep two copies of the corrupt data!), and so on) so even with one you still need to make sure you have good backups elsewhere.
There is nothing wrong with using drives from two manufacturers, though if they have different performance metrics you'll find your RAID1 array will likely be no better than the worst drive in any given benchmark (but any performance difference is going to be very very small). You could also get drives of the same make+model from two different suppliers if you are worried about getting two drives from one bad batch.
You mention possible concerns of drives not being exactly the same length (and this not being an issue for ZFS anyway). For RAID it is generally recommended that you make the partition you RAID a bit smaller than the maximum anyway, 1-or-2% should do on modern drives, to allow for the possible variance when replacing drives.