If feature Y is incomplete, then sharing a feature branch (which sounds like a road to a messy commit history) doesn't change that. You could also use the unmerged feature branch Y temporarily as a base for X if you need some code from it.
People I know used to temp-merge multiple work in progress features into a so-called frankenbranch for testing purposes. It was broadly acknowledged to be a huge smell and reached for only as a last resort.