A few “d’oh!!” lumps from my forehead:
(a) When using external files, be sure that you’re using a format which supports an alpha-channel. JPG, for instance, does not. PNG does, and of course, MultiLayer OpenEXR supports everything. The best bet is MultiLayer because it is a floating-point based format that was specifically designed (by ILM) to act as an intermediate-file format for CG work. (“MultiLayer” was a public extension to the format which was actually pioneered by Blender.) You lose a lot of numeric precision by shoving a number into a small, integer box. . .
(b) Be sure that “sky” is turned-off, or it will fill the entire frame with “something,” which means no alpha.
© Trust, but Verify.™ Yeah, yeah, it’s supposed to be there and you’re sure that you’ve got it and that it’s what you expect … but did you l-o-o-k to be sure? :yes: Stick a viewer-window on that alpha channel and, if you like, measure the actual numbers at various locations.
(d) Put together these multi-step composites “one step at a time.” OpenGL Preview renders will quickly give you an accurate interpretation. Deal with only one “WTF?!?!” at a time. 
(e) Visualize what you’re doing as both “a mathematical problem” and “a visual computer-programming problem,” because, in a real sense, it is both. Know what the numbers are, know what their values are, know where they’re coming from and where they’re going.
(f) Watch out for “anti-aliasing.” This fundamental effect, which is designed to avoid “jaggies” at the edges of things, works by interpolating (“softening” …) the pixels at the edges of things, and it affects alpha. It produces a “soft halo” around things, or even an “outline,” when you don’t account for it when comping.
(g) Also watch color. Be mindful of what colors you’re putting “next to” each other, and exactly how you are combining them. You can inadvertantly get color-bands in which a third color is introduced. Furthermore, this can be different between a video screen (RGB) and print (CMYK). Best bet is to make sure that the colors are not too-abrupt … that, among the three (or four) color channels at play, the values in those channels don’t change “too much, too fast, in too small of an area.” In some cases, this can actually produce an unwanted 3-D effect.