Should Citus reevaluate cstore_fdw in light of this extensions API? I wonder if a foreign data wrapper is similarly ill-fitted for this application.
With sharding, the distributed executor can work on the SQL level and translate one SQL query to many SQL queries. In that case your distributed executor can focus on issues such as partitioning and merging data, while the low-level work is still being done by the regular PostgreSQL executor, so you don't have to implement it from scratch.
[1] https://github.com/citusdata/postgres_vectorization_test