I wonder if you could do away with the "faction" condition altogether?
i.e. Remove the FactionType condition. That way all factions will use the same monitors and you don't need to replicate all of this for each faction.
And possibly replace that first monitor with just this...
Code:
monitor_event PreFactionTurnStart
set_event_counter Allow_Recruiting 0
end_monitor
This will ensure that Allow_Recruiting=0 for the local faction's turn.
EDIT: oh, no, sorry that won't work (the faction-removal bit) because that specific faction is still being used within the monitors. 
Okay, how about this...
Code:
monitor_event PreFactionTurnStart
set_event_counter Allow_Recruiting 0
set_event_counter treasury_check 0
end_monitor
monitor_event PreFactionTurnStart
and not FactionIsLocal
and Treasury > 5500
set_event_counter treasury_check 5500
end_monitor
monitor_event PreFactionTurnStart
and not FactionIsLocal
and Treasury > 6000
set_event_counter treasury_check 6000
end_monitor
...
monitor_event PreFactionTurnStart
and not FactionIsLocal
and Treasury > 10000
set_event_counter treasury_check 10000
end_monitor
monitor_event PreFactionTurnStart FactionType byzantium
and not FactionIsLocal
if I_EventCounter treasury_check = 5500
and I_NumberOfSettlements byzantium < 3
set_event_counter Allow_Recruiting 1
end_if
if I_EventCounter treasury_check = 6000
and I_NumberOfSettlements byzantium = 3
set_event_counter Allow_Recruiting 1
end_if
...
if I_EventCounter treasury_check = 10000
and I_NumberOfSettlements byzantium > 11
set_event_counter Allow_Recruiting 1
end_if
end_monitor
The only monitor that would need to be duplicated is the last one, changing the faction name.
I don't know if it would be any faster but it would be easier to write... less duplication.