The reason is as far as I can tell that the pattern matrix is not converted to device space. This results in tiny, unvisible patterns if the device and user space do not have identical scaling factors. (I tried multiplying the x and y cordinates by width and height and it gives the expected results for a normalized user-space.) Test case: the gradient test case.
The source pattern wasn't getting transformed in the _cairo_surface_fill_path() code path, but this is now fixed on cvs head. Closing bug.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.