In writing for Windows using DirectX, if I create a window of 320x240 size, and allow it to be resizable, when I stretch or maximize the window the display stretches as well, but internally is still considered 320x240, and the size of my backbuffer has not changed at all. Is there any way to get this functionality using OpenGL on either Linux or OS X?

Not exactly because that's not how it's intended to work. You're supposed to call al_acknowledge_resize when you get an ALLEGRO_EVENT_DISPLAY_RESIZE event. You can mimic that behavior on all platforms using the ALLEGRO_TRANSFORM apis, but you should not rely on it even on Windows.