This seems to me to be unnecessarily restrictive. These are very useful extension points for adding 3rd party sources and sinks.
I intend to make an Elasticsearch sink available on spark-packages but this will require a single class, the sink, to be in the org.apache.spark package tree. I could submit the package as a PR to the Spark codebase, and I'd be happy to do that but it could be a completely separate add-on. There are similar issues with writing a 3rd party metrics source which may not be of interest to the community at large so would probably not warrant inclusion in the Spark codebase. Any thoughts?