By default, intersectBed will report _each_ overlap between A and B. Thus, if a given SNP hits multiple exons (e.g., multiple transcripts for the same refGene or genes on opposite strands), it will report all of them. You can use the "-u" option to suppress this and turn the question into a "yes or no" query. Alternatively, one can use the "-c" option to count the number of overlapping exons.
Lastly, you may want to use the "-wb" option to get a sense of which exons are being reported.
Best,
Aaron