To my knowledge eyelet screws aren't designed to support that kind of weight. That is why the contractor suggested some kind of bolt through the side of the rafter. If it is a solid forged eye bolt then those are designed to support weight. I know you are only talking probably 500lbs max, but those eyelet lag screws can bend at the eye portion of it because it's not solid, unless they make some kind of heavy duty 3/4'' thick ones that I'm not aware of. It's not so much the length of the screw that matters, although that does help. As far as having your rafters 3' OC and having a 4 foot swing, it really just depends on how the chains attach to the swing. Most of the ones I have seen hook to the bench, go through the arm rest, and up to its hanging support. So any way you would hook it to your setup without installing some blocking, you would be either pulling the armrests in , or pushing them out and eventually they will start to come apart. Without adding blocking in your roof I would have to say turning the swing parallel with your rafter would be a more simple choice, however because one chain will be longer then the other, that side of the swing will move a little easier, but for a porch swing I doubt you will be swinging like you are 10 years old again, swinging as high as you can, then jumping off. Although if you have kids they might

.