Yes, I finally figured it out. I figured out what was happening. When you make the pivot table from the editing thing, all the tables in the data model are available to the pivot table whether its' connected or not, including the fake table we made for the slicer. The slicer just slices the fake table when the values() is being evaluated. But here is the critical thing. Yes, so critical. In order for the slicer to slice, it has to be CONNECTED to the pivot table. This is in no documentation about parameter tables. Maybe there's a special section on slicers, but this mechanism is not designed for fast learning. Then when the values is evaluating (with Italian accent) the filter context trickles through to the dax. The slicer table evaluates to one value. The value is available for use.
In the mean time, I've been trying to get the value from the slicer and not the underlying table because in every other programming language I know involving a ui or events, that's how you get the data. They really do not want you to learn this language quickly by making it so unique and convoluted. Then they trick you with the slicer name in the slicer settings so you'd think it's like every other language. In fairness, Power Query is also pretty unique, but it is by far the fastest and easiest language to learn and use. I picked it up in 3 hours and can do things I can't easily do in nearly every other etl package. If there was only a COM handle on the data table refresh, I'd use that thing on the front end and trigger the refresh from the command line before picking up the processed table with talend or some such instead of refactoring it, which is what I have to do now.
There is no way the power query and the Power Pivot people are in the same building. I can't accept it. Just complete opposite implementation quality.