Finally, after waiting for about 3 years, https://issues.apache.org/jira/browse/SPARK-25557 was merged into https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcFiltersBase.scala yesterday! Now Predicate Pushdown will work for nested ORC.
Thanks to https://github.com/viirya and the restless effort by Apple folks (https://github.com/dongjoon-hyun and https://github.com/dbtsai) for making it happen.