Up until recently i used to work at a major Indian eCommerce and can confirm that most companies use a mix of the simple heuristics you suggest together with some data mining.
So, they would take your recent purchases, clicks, searches and wish listed products and recommended products from some accessory category or related products. ie. Traditional mining combined with heuristics.
It also helps to have separate widgets for similar products and for cross-sell products.