I have tested and it's pretty strange.
In
BuyItem you can see such check for defuser:
PHP Code:
case MENU_SLOT_ITEM_DEFUSEKIT:
{
if (pPlayer->m_iTeam != CT || !g_pGameRules->m_bMapHasBombTarget)
{
return;
}
It seems that the item is locked from another place on map prefix. For example, if you rename a cs_ map to de_ defuser is available in the menu but nothing happens if you buy it(unless you spawn a func_bomb_target entity to make m_bMapHasBombTarget offset true).
Unfortunately I was not able to understand from where the item is locked on map prefix.
__________________