Freestyle: control the Thickness of stroked curve using Radius? (My english isn't very good, do not hesitate to edit my question)

I'm currently searching the best way to draw some 2D filled shape using Blender. 

For example:



This image is a render from Freestyle, the variable stroke width is automatically generated which isn't what I want. 

For the moment, I've found some interesting methods. One of them consists to play with a Bezier Curve in 3D mode that is extruded a little bit (with Tilt at 90°) then I can use ALT+S for change the radius of my extrusion. I really like that way of working and it give me that kind of result which is good:




The Problem is that I can't easily fill the shapes...
Lets see with this example:


If I want to fill that shape, I need to:


Duplicate my Bezier curve
Change the Z position of the duplicated curve to put it behind the original shape.
Change its mode to 2D so as fill it.
And finally, change its material to the color I want. 




That's a bit annoying to do and when there is a lot of elements on my stage, it becomes a mess, even using Groups.

It would be easier to use Freestyle for that, but how could I control manually the thickness of the stroke like I do with those bezier curve when I'm changing the Radius ? Does a similar way exists (like weight for example) ? 

I searched for a modifier of Freestyle Lineset but no luck. I've saw that it is possible to use Python, do you think it is possible to use that mode ? I tried a few, but the data input don't seems aware of a parameter like the Radius of the vertex...
Animation Nodes can be used here. Essentially, if you add a 2D curve and copy the 3D spline to it using this simple node tree, you will get what you need:



It also works for multiple splines:



But what if we have multiple spline objects? In this case we append all splines from all objects into a single list and use it instead, and the 3D spline objects can be sourced from a blender object group that the user will add:



What if we want the fill objects(2D Curves) to be separate objects so that we can add different materials for instance. In this case, the 2D curves can be dynamically generated using the Instancer Node: