This is what Yvan was seeing, and it can be dealt with if necessary, at the cost of a slight delay (and extra complexity, obviously). Save this as a stay-open applet:
use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use scripting additions
property filesToOpen : {}
on open fileList
set my filesToOpen to my filesToOpen & fileList
-- cancel any pending performSelector: requests
current application's NSObject's cancelPreviousPerformRequestsWithTarget:me
-- handle files after a short delay in case further events are received
tell me to performSelector:"doOpen" withObject:(missing value) afterDelay:0.5
end open
on doOpen()
copy my filesToOpen to fileList
set my filesToOpen to {} -- reset for next time
set aRes to length of fileList
display dialog aRes as string
repeat with i in fileList
set j to POSIX path of i
display dialog j
end repeat
tell me to quit
end doOpen
on quit
continue quit
end quit
That should coalesce multiple open events.