I think the quick answer to this one is that “data_source” is a custom module with its own filtering rules, it doesn’t inherit or follow most/any of the out-of-the-box LW widget filtering options. Basically anything you use in a data_source widget gets translated to mysql/oracle/csv/xml queries and sent to the outside source for data, so normal things like <arg id="filter" don’t get applied. I believe data_source uses search for all of its criteria; hope this helps! If you have more detailed queries/results processing, it may be that a standalone custom module or API integration is the answer, rather than using data_source.
Hmm, my guess is the underlying custom module code checks for !empty to populate that variable, so the falsey 0 is getting emptied out? You could try something using the widget formatting conditionals like data-value="{fieldname}{!fieldname:"0"}" and see if that fills the need here? Otherwise I think this would be a small project to update the module to fit that need.
And, heard on there not being sufficient documentation on that custom module – to my memory, it’s been deployed a few times over the years for particular projects (mostly course catalogs) and in each case we’ve tried to provide specific instructions for that one use case (i.e., use <arg id="search">dept_code=ANTH</span> for Anthropology courses) but I don’t think an effort has yet been undertaken to more broadly document the module for expanded or customized use cases. Let us know if that’s something you’d like more hands-on help with; thanks!