Generally it is. However, if you have a genuine bug, then you should report it to the project developers. See this post. This sounds like a bug to me, because you’re right that the .app should be self-contained.
If you want to take a stab at fixing it yourself, you can try cloning or downloading the async module and copying it directly to /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/. I’d still report it to the devs though, so they can fix it for other people.