On Windows, is there any variable that I can get via SNMP or IPMI, but I can't collect from a zabbix_agentd?
snmp - depends (tm). using user parameters you can get anything from zabbix agent directly, but that might be more complex.
if it's already available through snmp and not directly through zabbix, going with snmp might be easier. on the other hand, on windows, zabbix agent should be able to query most of the things through performance counters.
ipmi - definitely will provide more than zabbix agent ever could. but you have to keep in mind what ipmi is and what it does. as it works below os and can return data even when no os is available at all or machine is powered down (but still plugged in, of course), ipmi will always be able to get more info than the non-running agent.