I don't know if you've reviewed the new OpenGraph from F8 2011, but it lets you do a lot of configuring etc now. I won't bore you with the details as you can find a lot more information here :
https://developers.facebook.com/docs/beta/But here's an example:

As for your Cons:
breaches privacyI'm not sure how I understand this would breach privacy? It would require a user to login to Facebook from Serviio, authorise Serviio to connect to Facebook and the user would have too accept what they are letting Serviio do. As long as you use the correct permission requests then officially, this isn't a breach. Your using the new OpenGraph platform as intended.
might be embarrassing when you start watching 'a dodgy' movie by mistake and it gets sent to your profile (although Facebook would be contacted some time after begging watching the show)This isn't your fault

If someone has dodgy shows on the DNLA Server then they're asking for it one day

What I could suggest though is that users have the ability to block movies depending on their file name, actors etc. Perhaps even a GUI option so they can select ones they don't want to share? Or maybe a folder that has a specific naming convention - all files in there will be ignored by Facebook, however still appear in the DNLA server as usual.
would have to deal with multiple users using single instance of ServiioThis one could be a little tricky to get around. However, perhaps if Serviio detects multiple users (Facebook), then it will bring up a set of folders before each container of movies etc with Facebook user names. If someone plays it from a folder, it gets posted to that persons Facebook App. The only downside to this method is that you could tell Serviio to post all dodgy films and then play the dodgy films from someone elses Facebook
You could also have it setup based on Mac Addresses? So my PS3 in my Facebook account, my brother PS3 his is etc etc