getent queries the system resolver for the hostname - but it's not the resolver we're interested in. In fact, the hostname-to-be-set may already exist in DNS (becuase DNS really is a nifty thing and can do a lot of things which are not that possible with /etc/hosts alone), in which case getent will "not fail" and vagrant will believe the hostname had already been set. Instead, query hostnamectl for the "static" hostname - that's the one we will be setting, so we're ok IFF hostnamectl returns exactly what we would be setting.
Vagrant Core Plugins
These are plugins that ship with Vagrant. Vagrant core uses its own plugin system to power a lot of the core pieces that ship with Vagrant. Each plugin will have its own README which explains its specific role.