Если в unit добавить секцию intstall, всё отлично. Без секции install, BindsTo - не отрабатывает. Почему так? Я полагал, что и без опциональной секции Install, юнит должен слушать шину, и делать то, что сказано.
# /etc/systemd/system/foo.service
[Unit]
Description=foo
After=bar.service
BindsTo=bar.service
[Service]
User=foo
Group=foo
WorkingDirectory=/home/foo/python_scripts/foo
ExecStartPre=/bin/bash /home/foo/python_scripts/foo/StartPreSystemd.sh
ExecStart=/home/foo/python_scripts/foo/venv/bin/python3 /home/foo/python_scripts/foo/foo.py
[Install]
WantedBy=bar.service