В общем, дело обстоит так. Когда ты определяешь ресурс с одним именем в разных папках, они раскладываются так, чтобы было понятно андроиду. Путь к этим файлам для разных конфигураций прописывается в файле resources.arsc, который лежит в apk.
Если определить drawable/avd.xml и drawable-v21/avd.xml (анимированный), для supportVectorDrawable=true они будут определены как:
default=res/drawable/avd.xml (неанимированный)
v21=res/drawable-v21.xml (анимированный)
А для supportVectorDrawable=false будут другие значения.
anydpi-v21=res/drawable-anydpi-v21/avd.xml (неанимированный)
v21=res/drawable-v21/avd.xml (анимаированный)
xxhdpi=res/drawable-xxhdpi-v4/avd.png (api<=21, с другими dpi аналогично)
Когда ты прописываешь в xml в папке layout android:src="@drawable/avd.xml", андроид во время инфляции смотрит и разрешает какой конкретно файл изображения соответствует конфигурации лэйаута.
Если у нас supportVectorDrawable=true и api>=21, то все хорошо, и берется, парсится и отображается файл res/drawable-v21.xml
Но если у нас supportVectorDrawable=false и api>=21, андроид делает выбор между drawable-anydpi-v21 и drawable-v21. Если этот drawable используется в дефолтной папке layout, то он выбирает drawable-anydpi-v21, потому что так задан приоритет у разных конфигураций
(типа это дефолт, и layout подходит под него, можешь тут глянуть небольшое объяснение https://gist.github.com/lopspower/7adbcde1d677c9d2f526)
Возможно, поэтому во всех примерах id у статичного и анимированного вектора отличаются друг от друга.