I have proposed exactly the same in the company I work for. I specifically listed non-business-critical code in the request. I failed. The justification they gave was that if the project becomes successful, people may start demanding new features and that may end up taking too much time. I felt there was something else they didn't want to tell, and there probably was: it is not in the interest of the company to improve my job market value (I'm the one who created most of the code in the project). The reason of people demanding new features is a non-issue, as there is no contract or promise to offer any kind of support whatsoever.
I ended up choosing to create my own open source projects in my own time, unrelated to what the company I work for does. When doing so, the thing to consider is does it compete with your employer. If it does, you may end up losing your job due to competing with your employer in your free time, so choose carefully the open source projects you start and work for. For example, if your employer does Python based web development, and you like Java as well, now would be a good time to create a web development utility library in Java and to place it into Github. Or who knows, perhaps you like low-level development in C. If so, you could do some high-performance low-level programming in C. That surely won't compete with Python based web development!
When deciding your free-time open source activities, you need to consider whether you tell your employer about them or even ask for a permission prior to taking part in that activity. I decided I won't, because the response I got about releasing some of our code as open source was so negative as was the response I got about taking part in a particular open source project, including a warning not to take part in any open source projects that might complete with my employer. Of course, there's a fair possibility they will find the projects with Google. If they do, I already have a justification why my projects won't compete with my employer. I also can specifically for every single open source activity they have specifically forbidden me from taking part in, that this project doesn't have that activity at all. I know I'm a very good programmer, so it is extraordinarily unlikely I would get fired because of non-competing unrelated open source activity.
Whatever you do, don't ask your employer generally whether you are allowed to take part in open source activities in your free time if there's even a slight possibility their opinion is "no". Instead, you can feel the attitudes by asking about a specific non-important open source project. If their answer is "no", then you just won't take part in that open source project (and will start your own project instead, or take part in another important open source project, the one you have always wanted to work for).
The reason to provide open source for you is that everything you do in a private company that is mentioned in your CV will be treated with suspicion (did you really do that? you can't show the code!) but if you have code in Github, people will believe you wrote that code. So, open source is extremely important for programmers wanting to advance their career. You don't want to miss that opportunity!
The company you're working for has a different interest. Their interest is to keep you as an employer for a long amount of time with a low salary. Your interest is to increase your apparent job market value, the company's interest is to make the apparent value as low as possible so that you won't have many alternatives.
And needless to say, you are not allowed to publish copyrighted code as open source in Github (unless it's already open source). Similarly, you are not allowed to use the trade secrets of your employer in open source. Also, the timestamps of your open source contributions should be not in your regular working hours, showing this is a free-time activity and that you're not using your employer's time for your own purposes.
So, instead of providing an answer to what you asked (what are the good reasons to offer open source code?) I have answered a question what you should have asked (what are the reasons to not offer open source code?) and that's a fairly big honking reason:
- Your employer wants your apparent job market value to be as low as possible for the duration you work for them.