Docker develop vs volume mount

Can somone explain to me what is the difference and advantages of using docker compose develop vs volume?

Compose Develop Specification | Docker Docs is not deep on this. Any reason I should do:

services:
  app:
    build:
      target: develop
    command: tail -F /dev/null
    volumes:
      - ".:/w:Z"
    working_dir: "/w"

or

services:
  app:
    build:
      target: develop
    command: tail -F /dev/null
    develop:
          watch: 
            -  action: sync
               path: .
              target: /w
    working_dir: "/w"

Any performance or other benefits of develop watch over mounting the volume?

One thing is that it doesn’t go both ways

If you change data within a container’s bind mounted volume, it will change on the host

With docker compose watch set to sync, only changes on the host reflect to the container, changes to the container do not change the data on the host

Docker Compose Watch also takes .dockerignore into account, while bind mounts do not