for a purely software based company I think the main reason to require on-site employees is lack of trust. management really wants to see the people they pay walk in in the morning and sit at their desks.
personally I am more productive working remotely. I used to work for many years on-site at the same company and the distractions were unbearable, phones ringing, people walking by who always felt the need to interrupt me about anything (work related or not). and many phone calls about unrelated projects which resulted in context switching.
it turns out working remotely is more efficient because you avoid the random chit-chat, and unrelated calls transformed themselves into emails which I can open and respond to at a more convenient time.
personally I am more productive working remotely. I used to work for many years on-site at the same company and the distractions were unbearable, phones ringing, people walking by who always felt the need to interrupt me about anything (work related or not). and many phone calls about unrelated projects which resulted in context switching.
it turns out working remotely is more efficient because you avoid the random chit-chat, and unrelated calls transformed themselves into emails which I can open and respond to at a more convenient time.