I don't see any problem with the original solution. It is classic (but little bit old fashioned) way of detecting objects, far from random. I also think that you oversimplify the SIFT solution. You use sift, then what? Match the feature vectors, get bunch of possible correspondence points, prune outliers using 3D model of a cylinder (or assume that the face of the can is flat plane and just use homography) and robust fitting, validate fitting, find other cans, if none found change parameters? No preprocessing? Ignore color? Etc. Not so straight forward.
SIFT is faster than generalized HoughTF in this case, use of points instead of whole objects/blobs gives you nice ways to validate using 3D model, etc., but I would still not look down on some one who finds and implements this solutions as a student.