Some things have changed, but I'm not sure it was the PATH api that changed, at least not in that regard. At the very least the PATH api is acting as intended, and the FS ENTRY stuff is also acting as intended. It's a bit annoying that they don't match up.
I think the FS stuff used to append a slash on every path that was a directory on windows to work better with win32 API functions that just don't work properly if you don't. But things were tweaked at one point to change that.
I could swear there was a way to get an FS_ENTRY directly from a PATH, but I can't seem to find it atm.
I'm not sure there's a way to properly fix this, as readdir just returns a bare string and you have to separately "stat" it to get its type.
I think if you want to keep the same behaviour you had, just always use al_create_path_for_directory, then you just have to ignore the filename and extension parts of the PATH api.