Actually that is not really a bug. Apache is pretty well tested for a long time. What you're probably running into is content Negotiation and MultiViews. It might be causing some funny business.
So your answer really won't help anyone because changing the file name is not a solution. You probably just needed to disable MultiViews.
Options -MultiViews
RewriteEngine on
RewriteRule ^api/?$ api.access.php [L,QSA]
More on MultiViews
The effect of MultiViews is as follows: if the server receives a
request for /some/dir/foo, if /some/dir has MultiViews enabled, and
/some/dir/foo does not exist, then the server reads the directory
looking for files named foo.*, and effectively fakes up a type map
which names all those files, assigning them the same media types and
content-encodings it would have if the client had asked for one of
them by name. It then chooses the best match to the client's
requirements.