Proportions in python?
Always assign to the property itself not a copy of it :

import bge
from bge import logic

def property(cont):    
    own = cont.owner

    if 'Speed' in own and 'Recoil_Level' in own and 'Proportion_Size' in own:

        speed = own['Speed']
        level = own['Recoil_Level']
        size = own['Proportion_Size']

    else:
        print('No properties found in Weapon_Recoil_Level_Determiner')
        return

    own['Recoil_Level']= speed / size
        print("recoil level: ", own['Recoil_Level'])    

cont = logic.getCurrentController()      
property(cont)


level is just a copy ( not exactly but this how you should see it ) when you write  level = speed / size then level will change but  own['Recoil_Level'] won't change