How can both strands of DNA code for proteins with similar functions?
You are confusing the the forward and reverse strands of DNA as two alleles. They are not. Remember you have a double stranded DNA from each parent. Each of those two pieces of double stranded DNA represent alleles for a given locus.

For the example you gave, you can have different genes that overlap the same region of DNA. One is on one strand and a different gene is on the other. The DNA is read 5' to 3' so we think of one strand as forward and one strand as reverse. 

See embedded pic for examples from this publication about different kinds of overlap and whether they are conserved across species.