As for #10, I was also dismayed about the drawbacks of using aliases but these tips solve the problems!
2. Use this to fix eslint errors in imports using webpack aliases:
Resolve paths to dependencies, given a webpack.config.js. Plugin for eslint-plugin-import.
3. If you’re using Webstorm, if you mark the parent directory as a ‘resource root’ then Webstorm will be able to properly figure out where you’re resolving from and then use its normal helpful features. The caveat is that you need to keep the directory and the alias the same name, but I find that it’s usually for the best to do that anyways.