I've used a similar strategy and have found success. On my LinkedIn I note that I am a freelancer and it's clear that I have been so for quite a few years. I get contacted by at least 2-3 recruiters (either internal or external) a month offering me an in-house full-time W2 position.
I make sure to always follow-up and note an interest (if there is one) in the position but that I am a freelancer and intend to stay as such. I then give a sales pitch (brief) about my skills & experience. I inform them that if they don't want to hire a freelancer for this position I understand but that I also offer consultation services so that I can teach their team my skills and industry insights.
Consulting is usually when they're interested in me because I can train 5-10 people at once to do what I do so their whole team is worth more than they were before.
I think the industry really plays a major role here as I work for 2 but it only works with 1. I'll explain:
When I get contacted it's usually for SEO work. Good SEO's usually freelance or work for a marketing agency. It's recommended you don't hire an in-house SEO for your company or bring someone in and have them learn SEO to work on your companies website.
However, for development work, it's a different story. Many companies have their own in-house dev team (they take on other roles as well if there's not a ton of work to do). Rarely will I hear back from a recruiter if they're looking for a dev employee and I mention I'll work as a freelancer.
Now, you're talking about responding to a job ad itself. If you 'apply' to this job via a form then I think your chances are about 1% as jobs who get a lot of applicants only skim an application for certain things and don't really read it. "Will work as a freelancer" tossing it, not what we're looking for.
I recommend email, or better yet, calling the company and talking with someone directly. avoid HR at ALL costs these people have no idea how to hire people for a position in a department other than their own and are a major roadblock for anyone trying to get a job.
Look the company up on LinkedIn and find the department manager/team leader. They may not be able to say yes or no for hiring a freelancer but they're more likely to give you the time of day than HR, company recruiters, or an operations manager.
Is the approach considered unprofessional and will it ruin my reputation (e.g. like staffing agencies spamming LinkedIn)? Will I be (mis)judged to be needy, arrogant, rude or even aggressive?
If anything, it shows you have dedication, and you have a real interest in the position. You're applying for a job because you believe you can complete it and you can do a better job than others. Now's the time to prove why you're better.
Is there anyone who uses this approach as part of their regular "sales strategy"?
I wouldn't make this a 'regular' thing. I say you'll get 7 no's for every 1 consideration but your outreach strategy shouldn't focus on this tactic. There are people looking for freelancers specifically.