Functional Destructuring: Destructure via function calls using new syntax

I agree, I didn't expect this idea could satisfy TC39.

No, that won't work, destructuring is designed to have the property name on the left and the target expression (which might contain nested destructuring patterns) on the right.

Actually I think it would work, as far as grammar unambiguity is concerned, to put the "call" on the left side around the property name:

const {
  getDaysSince(date): days,
  getWordCount(content): wordCount,
  getCharCount(["content"]): charCount,
  buildSlugURL(title): {path: slugPath, searchParams: slugParams},
} = article;

But that's still confusing, I'll expect people trying to pass multiple arguments and also things that are not properties into these "calls" which should not work.
I didn't remember @theScottyJam's coercion discussion, but I think I would prefer to have the function in between the property name and the target:

const {
  date via getDaysSince: days,
  content via getWordCount: wordCount,
  ["content"] via getCharCount: charCount,
  title via buildSlugURL: {path: slugPath, searchParams: slugParams},
} = article;

And if you wanted to call the function in a different way, a function expression would work:

  title via (t => buildSlugURL(location.href, t, {relative: true})): {path: slugPath, searchParams: slugParams},

Then don't use destructuring for these.
Although indeed using the getters syntax from the extensions proposal would enable this.