If you already checked on duplicate props, you probably used a tool like Chloe's Remove Duplicate Tool.
Flames and sparks don't contribute much to file size but they contribute to lag.
File size is directly dependent on the quantity of individual objects you use. Some props that we add can represent several thousand objects. You can check how many objects your world has by using the tool I mentioned above.
For a file size of 3.8MB you should have more than 50000 objects in it.
I would advise to check how many objects there are on the props you add. I remember adding a jukebox that increased file size by 0.5MB because it was amazingly detailed.
There is another tool (an excel file named 3dxWorldEditor) that allows you to reduce the number of decimal places stored on each object location, scale and angle. By setting the precision to 3 or 4 decimal places you can considerably reduce the file size without compromizing accuracy.
I have seen worlds with more than 10MB that don't experience excessive lag, so it's a balance between some light effects and the actual quantity of objects.