Hmm... Off the top of my head so may not be correct /as in the code/, but allegro draws all bitmaps by blitting them to an internal bitmap, or backbuffer. I think it's being drawn to a dest rectangle, so unless you scale that final destination rect then it doesn't matter how big the source bitmap is.
Or there is still allegro handling this internally as part of the GUI routines... this needs investigating.
That is a good suggestion.